客户端证书身份验证和用户注册

Posted

技术标签:

【中文标题】客户端证书身份验证和用户注册【英文标题】:Client Certificate Authentication and User Enrollment 【发布时间】:2015-05-21 19:00:56 【问题描述】:

我目前正在阅读客户端 X.509 证书身份验证和用户注册教程 (https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-6-3/authentication-security/client-x-509-certificate-authentication-userenrollment/ ) 并尝试使用我当前的工作灯应用程序来实现它。我正在使用 Worklight Studio 6.0

但是,我对 authenticationConfig.xml 设置有点困惑。我目前有一个适配器身份验证工作。我的应用程序的第一页显示了一个登录页面,adapterChallenge 处理程序将根据数据库验证用户名和密码。下面的sn -p代表配置:

<customSecurityTest name="AuthRealm">
            <test isInternalUserID="true" realm="AdapterAuthRealm"/>
              <!-- <test isInternalUserID="true" realm="SampleAppRealm"/> -->
        </customSecurityTest>  

<realm name="AdapterAuthRealm" loginModule="NonValidatingLoginModule">
            <className>com.worklight.integration.auth.AdapterAuthenticator</className>
            <parameter name="login-function" value="AuthAdapter.onAuthRequired"></parameter>
            <parameter name="logout-function" value="AuthAdapter.onLogout"></parameter>
        </realm>

<loginModule name="NonValidatingLoginModule">
            <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
        </loginModule>

我不确定如何使用本教程的以下 sn-p 来配合我的设置。我的安全测试会变成第 2 步还是第 3 步?我是否只需在我的安全测试 (AuthRealm) 下添加这些?

        <customSecurityTest name="customx509Tests">
                    <test realm="wl_antiXSRFRealm" step="1"/>
                    <test realm="wl_directUpdateRealm" mode="perSession" step="1"/>
                    <test realm="wl_userCertificateAuthRealm" isInternalUserID="true" step="1"/>
                    <test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" step="2"/>
                </customSecurityTest>

            <realm name="wl_userCertificateAuthRealm" loginModule="WLUserCertificateLoginModule">


    <className>com.worklight.core.auth.ext.UserCertificateAuthenticator</className>
                    <parameter name="dependent-user-auth-realm" value="SampleAppRealm" />
                    <parameter name="pki-bridge-class" value="com.worklight.core.auth.ext.UserCertificateEmbeddedPKI" />
                    <parameter name="embedded-pki-bridge-ca-p12-file-path" value="/path/to/certificates/directory/signingca/signing_ca.p12"/> 
                    <parameter name="embedded-pki-bridge-ca-p12-password" value="passSigningP12" />
                </realm>

<loginModule name="WLUserCertificateLoginModule">
            <className>com.worklight.core.auth.ext.UserCertificateLoginModule</className>
        </loginModule>

感谢任何建议。

【问题讨论】:

第一件事 - 不要试图在 6.0 中实现 6.3 教程。升级。 我已按要求升级到 worklight studio 6.3。 关于如何配置安全方面还有其他建议吗? 什么是“我的安全测试是第2步还是第3步”?您应该将它们与问题一起列出。 我的意思是我在上面的 te sn-p 中拥有的 xml 属性中的 step。 isInternalUserID="true" step="1"。我想知道如何正确订购它,以便保留我的设置并结合本教程的测试 【参考方案1】:

用户身份验证功能是它自己独立的安全领域。它允许您指定在客户端未提供 x509 证书时使用的依赖用户身份验证领域。依赖领域基本上用于将设备/用户/应用程序注册到您的 PKI 中。依赖领域可以是您选择的任何安全领域。

要将您的安全领域指定为依赖领域,请更改以下行:

<parameter name="dependent-user-auth-realm" value="SampleAppRealm" />

到:

<parameter name="dependent-user-auth-realm" value="AdapterAuthRealm" />

这是你的问题吗?

仅供参考,您可以通过以下方式阅读更多关于该功能的信息:https://www-01.ibm.com/support/knowledgecenter/?lang=en#!/SSHS8R_6.3.0/com.ibm.worklight.monitor.doc/monitor/c_user_CA.html

和服务器端 PKI 配置了解更多详情:https://www-01.ibm.com/support/knowledgecenter/?lang=en#!/SSHS8R_6.3.0/com.ibm.worklight.monitor.doc/monitor/c_user_CA_PKIBridge.html

【讨论】:

谢谢莉泽特。这完美地回答了它!我已将您的答案标记为绿色。

以上是关于客户端证书身份验证和用户注册的主要内容,如果未能解决你的问题,请参考以下文章

WCF SOAP 1.1 和 WS-Security 1.0、客户端证书传输身份验证、消息正文签名的服务证书、用户名令牌、密码摘要、随机数

WCF 客户端证书验证 + Windows 身份验证

启用证书身份验证时获取 401.2

WCF 服务 - 具有用户名身份验证的证书和消息安全性

唯一标识用户时要使用客户端证书的哪些部分?

SCCM的证书配置PKI