客户端证书身份验证和用户注册
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、客户端证书传输身份验证、消息正文签名的服务证书、用户名令牌、密码摘要、随机数