1.2.15. 使用红帽单点登录保护管理控制台


您可以使用 elytron 子系统,通过红帽单点登录来保护 JBoss EAP 管理控制台。

注意

此功能仅在运行单机服务器时使用,并且在运行受管域时不受支持。不支持使用红帽单点登录来保护管理 CLI。

使用以下步骤设置红帽单点登录,对 JBoss EAP 管理控制台的用户进行身份验证。

配置红帽单点登录服务器以进行 JBoss EAP 管理
  1. 下载并安装红帽单点登录服务器.有关基本说明,请参阅红帽单点登录入门指南
  2. 启动红帽单点登录服务器。

    此流程假设您使用端口偏移 100 启动服务器。

    $ RHSSO_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
    Copy to Clipboard Toggle word wrap
  3. 登录 Red Hat Single Sign-On 管理控制台,地址为 http://localhost:8180/auth/

    如果您第一次访问 Red Hat Single Sign-On 管理控制台,系统会提示您创建一个初始管理用户。

  4. 创建名为 wildfly-infra 的新域。

    1. 从 realm 名称旁边的下拉菜单中,单击 Add realm,在 Name 字段中输入 wildfly-infra,然后单击 Create
  5. 创建名为 wildfly-console 的客户端应用。

    重要

    此客户端应用程序的名称 必须是 wildfly-console

    1. 选择 Clients 并点 Create
    2. Client ID 字段中输入 wildfly-console,然后单击 Save
    3. 在出现的 Settings 屏幕中,将 Access Type 设置为 public,将Valid Redirect URIs 设置为 http://localhost:9990/console/*Web Origins 设置为 http://localhost:9990,然后点 Save
  6. 创建名为 wildfly-management 的客户端应用。

    1. 选择 Clients 并点 Create
    2. Client ID 字段中输入 wildfly-management,然后单击 Save
    3. 在出现的 Settings 屏幕中,将 Access Type 设置为 bearer-only,然后单击 Save
  7. 创建角色,以授予对 JBoss EAP 管理控制台的访问权限。

    1. 选择角色,再单击 Add Role
    2. Role Name 字段中大写的 Enter ADMINISTRATOR,然后单击 Save

      此流程使用 ADMINISTRATOR 角色,但支持其他角色。如需更多信息,请参阅 JBoss EAP 安全架构的基于角色的访问控制 小节

  8. 创建一个用户,并为其分配 ADMINISTRATOR 角色。

    1. 选择"用户 "并单击"添加用户 "。
    2. Username 字段中输入 jboss,然后单击 Save
    3. 选择 Credentials 选项卡,再设置此用户的密码。
    4. 选择 Role Mappings 选项卡,选择ADMINISTRATOR,再单击 Add selected 将角色添加到此用户
在 JBoss EAP 上安装红帽单点登录客户端适配器
  1. 从软件下载页面下载 JBoss EAP 7 的红帽单点登录客户端适配器。
  2. 将此文件解压缩到 JBoss EAP 安装的根目录中。
  3. 执行 adapter-elytron-install-offline.cli 脚本来配置您的 JBoss EAP 安装。

    $ EAP_HOME/bin/jboss-cli.sh --file=adapter-elytron-install-offline.cli
    Copy to Clipboard Toggle word wrap
    重要

    此脚本将 elytronundertow 子系统中的 keycloak 子系统和其他所需资源添加到 standalone.xml。如果您需要使用其他配置文件,请根据需要修改 脚本。

配置 JBoss EAP 以使用红帽单点登录
  1. EAP_HOME/bin/ 目录中,创建名为 protect-eap-mgmt-services.cli 的文件,其内容如下:

    # Create a realm for both JBoss EAP console and mgmt interface
    /subsystem=keycloak/realm=wildfly-infra:add(auth-server-url=http://localhost:8180/auth,realm-public-key=REALM_PUBLIC_KEY)
    
    # Create a secure-deployment in order to protect mgmt interface
    /subsystem=keycloak/secure-deployment=wildfly-management:add(realm=wildfly-infra,resource=wildfly-management,principal-attribute=preferred_username,bearer-only=true,ssl-required=EXTERNAL)
    
    # Protect HTTP mgmt interface with Keycloak adapter
    /core-service=management/management-interface=http-interface:undefine-attribute(name=security-realm)
    /subsystem=elytron/http-authentication-factory=keycloak-mgmt-http-authentication:add(security-domain=KeycloakDomain,http-server-mechanism-factory=wildfly-management,mechanism-configurations=[{mechanism-name=KEYCLOAK,mechanism-realm-configurations=[{realm-name=KeycloakOIDCRealm,realm-mapper=keycloak-oidc-realm-mapper}]}])
    /core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory,value=keycloak-mgmt-http-authentication)
    /core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade, value={enabled=true, sasl-authentication-factory=management-sasl-authentication})
    
    # Enable RBAC where roles are obtained from the identity
    /core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
    /core-service=management/access=authorization:write-attribute(name=use-identity-roles,value=true)
    
    # Create a secure-server in order to publish the JBoss EAP console configuration via mgmt interface
    /subsystem=keycloak/secure-server=wildfly-console:add(realm=wildfly-infra,resource=wildfly-console,public-client=true)
    
    # reload
    reload
    Copy to Clipboard Toggle word wrap
  2. 在此文件中,将 REALM_PUBLIC_KEY 替换为公钥的值。要获取这个值,请登录到 Red Hat Single Sign-On 管理控制台,选择 wildfly-infra realm,导航到 Realm Settings Keys 并点 Public key
  3. 启动 JBoss EAP.

    $ EAP_HOME/bin/standalone.sh
    Copy to Clipboard Toggle word wrap
    重要
  4. 执行 protect-eap-mgmt-services.cli 脚本。

    $ EAP_HOME/bin/jboss-cli.sh --connect --file=protect-eap-mgmt-services.cli
    Copy to Clipboard Toggle word wrap

现在,当您通过 http://localhost:9990/console/ 访问 JBoss EAP 管理控制台时,您将重定向到红帽单点登录以登录,然后在成功身份验证后重新重定向到 JBoss EAP 管理控制台。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat