搜索

2.5. 使用证书配置身份验证

download PDF
重要

您必须先配置双向 SSL,然后才能设置基于证书的身份验证。有关配置双向 SSL 的详情,请参考《如何配置服务器安全性指南 》的 Elytron Subsystem 部分,为应用启用双向 SSL/TLS

  1. 配置 密钥存储域.

    /subsystem=elytron/key-store-realm=ksRealm:add(key-store=twoWayTS)

    您必须为这个域配置一个包含客户端证书的信任存储。身份验证过程使用客户端在双向 SSL 握手期间提供的相同证书。

  2. 创建解码器。

    您需要创建一个 x500-attribute-principal-decoder 来解码您从证书中获得的主体。以下示例将根据第一个 CN 值对主体进行解码。

    /subsystem=elytron/x500-attribute-principal-decoder=CNDecoder:add(oid="2.5.4.3",maximum-segments=1)

    例如,如果完整 DNCN=client,CN=client=certificate,DC=example,DC=jboss,DC=orgCNDecoder 会将该主体解码为 客户端。此解码主体用作 别名 值,用于在 ksRealm 中配置的信任存储中查找证书。

    重要

    已解码的主体 MUST 是您在服务器信任存储中为客户端证书设置的 别名 值。

  3. 添加用于分配角色的 常量角色映射器

    例如,使用 constant -role-mapper 将角色分配给 ksRealm 中的主体,但也可以使用其他方法。

    /subsystem=elytron/constant-role-mapper=constantClientCertRole:add(roles=[Admin,Guest])
  4. 配置 安全域.

    /subsystem=elytron/security-domain=exampleCertSD:add(realms=[{realm=ksRealm}],default-realm=ksRealm,permission-mapper=default-permission-mapper,principal-decoder=CNDecoder,role-mapper=constantClientCertRole)
  5. undertow 子系统中配置 application-security-domain

    /subsystem=undertow/application-security-domain=exampleApplicationDomain:add(security-domain=exampleCertSD)
    注意

    可以通过导航到 Configuration Subsystems Web(Under tow )→ Application Security Domain,使用管理控制台配置 undertow 子系统中的 application-security-domain

  6. 更新 server-ssl-context.

    /subsystem=elytron/server-ssl-context=twoWaySSC:write-attribute(name=security-domain,value=exampleCertSD)
    /subsystem=elytron/server-ssl-context=twoWaySSC:write-attribute(name=authentication-optional, value=true)
    reload
  7. 配置应用程序的 web.xmljboss-web.xml

    您的 web.xmljboss-web.xml 必须更新为使用您在 JBoss EAP 中配置的 application-security-domain。例如,将 Web 应用程序配置为使用 Elytron 或传统安全性进行身份验证

    此外,您需要更新 web.xml,以使用 CLIENT-CERT 作为其身份验证方法。

    <login-config>
      <auth-method>CLIENT-CERT</auth-method>
      <realm-name>exampleApplicationDomain</realm-name>
    </login-config>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.