2.4.2. 配置传统安全子系统


JBoss EAP 附带了将 Kerberos(使用 SPNEGO 和 JBoss Negotiation)用于已部署应用的 SSO 所需的所有组件,但需要进行以下配置更改:

注意

显示的管理 CLI 命令假定您在运行 JBoss EAP 单机服务器。有关将管理 CLI 用于 JBoss EAP 受管域的更多详细信息,请参见 JBoss EAP管理 CLI 指南

  1. 配置服务器身份或主机安全域。

    此安全域将容器本身身份验证到 KDC。它需要使用登录模块,该模块接受静态登录机制,因为实际用户不参与此连接。以下示例使用静态主体并引用包含凭据的 keytab 文件。

    示例:创建服务器身份安全域

    /subsystem=security/security-domain=host:add(cache-type=default)
    
    /subsystem=security/security-domain=host/authentication=classic:add()
    
    /subsystem=security/security-domain=host/authentication=classic/login-module=Kerberos:add(code=Kerberos, flag=required, module-options=[storeKey=true, refreshKrb5Config=true, useKeyTab=true, principal=host/testserver@MY_REALM, keyTab=/home/username/service.keytab, doNotPrompt=true, debug=false])
    
    reload

    如果使用 IBM JDK,Kerberos 模块的选项会有所不同。jboss.security.disable.secdomain.option 系统属性必须设置为 true如需更多信息,请参阅配置相关系统属性。此外,登录模块应配置如下:

    示例:IBM JDK

    /subsystem=security/security-domain=host:add(cache-type=default)
    
    /subsystem=security/security-domain=host/authentication=classic:add()
    
    /subsystem=security/security-domain=host/authentication=classic/login-module=Kerberos:add(code=Kerberos, flag=required, module-options=[principal=host/testserver@MY_REALM, keyTab="file:///root/keytab", credsType=acceptor])
    
    reload

    有关配置 Kerberos 登录模块的完整选项列表,请参阅 JBoss EAP 登录模块参考

  2. 配置 Web 应用安全域。

    Web 应用安全域用于验证单个用户到 KDC。需要至少有一个登录模块来验证用户身份。还必须有办法搜索要应用到用户的角色。这可以通过许多不同的方式来实现,例如添加 <mapping> 来 手动将用户映射到角色,添加第二个登录模块来映射用户到角色,等等。

    以下显示了一个 Web 应用安全域示例:

    示例:创建服务器身份安全域

    /subsystem=security/security-domain=app-spnego:add(cache-type=default)
    
    /subsystem=security/security-domain=app-spnego/authentication=classic:add()
    
    /subsystem=security/security-domain=app-spnego/authentication=classic/login-module=SPNEGO:add(code=SPNEGO, flag=required, module-options=[serverSecurityDomain=host])
    
    reload

    有关配置 SPNEGO 登录模块的完整选项列表,请参阅 JBoss EAP 登录模块参考

  3. 配置相关系统属性.

    JBoss EAP 提供配置与连接 Kerberos 服务器相关的系统属性的功能。根据 KDC、Kerberos 域和网络配置,以下系统属性可能也可能不是必需的:

    <system-properties>
      <property name="java.security.krb5.kdc" value="mykdc.mydomain"/>
      <property name="java.security.krb5.realm" value="MY_REALM"/>
      <property name="java.security.krb5.conf" value="/path/to/krb5.conf"/>
      <property name="jboss.security.disable.secdomain.option" value="true"/>
      <property name="sun.security.krb5.debug" value="false"/>
    </system-properties>
    Expand
    属性描述

    java.security.krb5.kdc

    KDC 的主机名。

    java.security.krb5.realm

    域的名称。

    java.security.krb5.conf

    配置 krb5.conf 文件的路径。

    jboss.security.disable.secdomain.option

    当设置为 true 时,将禁用自动添加 jboss.security.security_domain 登录模块选项,以登录安全域中声明的模块。使用 IBM JDK 时必须设置为 true

    sun.security.krb5.debug

    如果为 true,则会启用调试模式。

    注意

    默认情况下,安全域中定义的每个登录模块都自动添加 jboss.security.security_domain 模块选项。此选项会导致登录模块出现问题,这些模块检查以确保只定义了已知的选项。IBM Kerberos 登录模块 com.ibm.security.auth.module.Krb5LoginModule 是其中一个模块。在启动 JBoss EAP 时,可以通过将 jboss.security.disable.secdomain.option 系统属性设置为 true 来 禁用添加此模块选项的行为。这可以通过配置 <system-properties>、使用管理 CLI 或管理控制台,或者将 -Djboss.security.disable.secdomain.option=true 添加到启动参数来实现。

    有关配置系统属性的更多信息,请参阅 JBoss EAP管理 CLI 指南

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部