2.6. 配置身份提供程序以使用基于证书的身份验证


除了将 SP 和 IDP 配置为使用 SSL/TLS 外,您还可以将 IDP 配置为使用基于证书的身份验证。在设置 IDP 以使用基于证书的身份验证之前,您需要将 IDP 和 SP 配置为使用 SSL/TLS

  1. 创建客户端证书和信任存储。

    您必须创建一个证书和信任存储,供客户端用于进行身份验证。您需要在服务器配置以及客户端的浏览器中使用它们。

    客户端证书和信任存储示例

    $ keytool -genkeypair -alias client -storetype jks -keyalg RSA -keysize 2048 -keypass change_it -keystore client.jks -storepass change_it -dname "CN=client,OU=Sales,O=Systems Inc,L=Raleigh,ST=NC,C=US" -validity 730 -v
    
    $ keytool -export -alias client -keystore client.jks -storepass change_it -file client.cer
    
    $ keytool -import -file client.cer -alias client -keystore client.truststore

  2. 为 IDP 创建安全域.

    您需要创建一个安全域,它使用基于证书的登录模块供 IDP 用于身份验证。有关基于证书的登录模块的详情,请查看Login 模块参考

    使用 CertificateRoles 登录模块的安全域示例

    /subsystem=security/security-domain=idp-cert:add
    
    /subsystem=security/security-domain=idp-cert/authentication=classic:add
    
    /subsystem=security/security-domain=idp-cert/authentication=classic/login-module=CertificateRoles:add(code=CertificateRoles,flag=optional,module-options=[("password-stacking"=>"useFirstPass"),("securityDomain"=>"idp-cert"),("verifier"=>"org.jboss.security.auth.certs.AnyCertVerifier")])
    
    /subsystem=security/security-domain=idp-cert/jsse=classic:add(truststore={url=>"/path/to/client.jks",password=>change_it})
    
    reload

    您还需要将 IDP 配置为使用此安全域。有关配置 IDP 的详情,请参阅设置 IDP 部分。

    注意

    您还可以将 RegExUserNameLoginModule 与证书登录模块结合使用,以从主体名称中提取用户名、UID 或其他信息。有关 RegExUserNameLoginModule 的详情,请查看 JBoss EAP 登录模块参考

  3. 将客户端证书导入到客户端的浏览器中。完成 IDP 和服务器配置后,您必须将客户端浏览器配置为使用客户端证书。这种配置因浏览器而异。将客户端的浏览器配置为使用客户端证书后,客户端将能够使用该证书与 IDP 进行身份验证。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部