2.4. 配置 JBoss EAP 实例


您可以将部署到 JBoss EAP 的应用配置为使用 elytron传统 安全 子系统,但您无法将它配置为使用两者。

2.4.1. 配置 Elytron 子系统

重要

以下步骤假定您已配置且正常工作的 KDC、Kerberos 域和浏览器。

  1. 配置 kerberos-security-factory

    /subsystem=elytron/kerberos-security-factory=krbSF:add(principal="HTTP/host@REALM", path="/path/to/http.keytab", mechanism-oids=[1.2.840.113554.1.2.2, 1.3.6.1.5.5.2])
  2. 配置 Kerberos 的系统属性.

    根据您的环境配置方式,您需要设置以下部分系统属性。

    Expand
    系统属性描述

    java.security.krb5.kdc

    KDC 的主机名。

    java.security.krb5.realm

    域的名称。

    java.security.krb5.conf

    配置 krb5.conf 文件的路径。

    sun.security.krb5.debug

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

    使用管理 CLI 在 JBoss EAP 中配置系统属性:

    /system-property=java.security.krb5.conf:add(value="/path/to/krb5.conf")
  3. 配置 Elytron 安全域以分配角色。

    客户端的 Kerberos 令牌将提供主体,但您需要设法将该主体映射到您的应用的角色。实现这一目标的方法有多种,但本例创建了 文件系统realm,将用户添加到与 Kerberos 令牌中主体匹配的域中,并将角色分配给该用户。

/subsystem=elytron/filesystem-realm=exampleFsRealm:add(path=fs-realm-users, relative-to=jboss.server.config.dir)

/subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity(identity=user1@REALM)

/subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity-attribute(identity=user1@REALM, name=Roles, value=["Admin","Guest"])
  1. 添加 simple-role-decoder

    /subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)

    simple-role-decoderRoles 属性解码主体的角色。如果您的角色在不同的属性中,您可以更改此值。

  2. 配置 安全域.

    /subsystem=elytron/security-domain=exampleFsSD:add(realms=[{realm=exampleFsRealm, role-decoder=from-roles-attribute}], default-realm=exampleFsRealm, permission-mapper=default-permission-mapper)
  3. 配置 http-authentication-factory,它使用 kerberos-security-factory

    /subsystem=elytron/http-authentication-factory=example-krb-http-auth:add(http-server-mechanism-factory=global, security-domain=exampleFsSD, mechanism-configurations=[{mechanism-name=SPNEGO, mechanism-realm-configurations=[{realm-name=exampleFsSD}], credential-security-factory=krbSF}])
  4. undertow 子系统中配置 application-security-domain

    /subsystem=undertow/application-security-domain=app-spnego:add(http-authentication-factory=example-krb-http-auth)
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部