3.4. 使用传统核心管理身份验证进行用户身份验证

3.4.1. 默认用户配置

JBoss EAP 中的所有管理界面默认是安全的,用户可以以两种不同的方式访问它们:本地接口和远程接口。JBoss EAP 安全 架构指南 的"默认 安全性和 JBoss EAP" 部分介绍了这两种身份验证机制的基础知识。默认情况下,在 Management Realm 安全域中配置对这些接口的访问。最初,本地接口已启用,需要访问运行 JBoss EAP 实例的主机计算机。也启用了远程访问,并配置为使用基于文件的身份存储。默认情况下,它使用 mgmt-users.properties 文件来存储用户名和密码,mgmt-groups.properties 来存储用户组信息。

使用 EAP_HOME/bin/ 目录中的 included adduser 脚本添加到这些文件中。

通过 adduser 脚本添加用户:

  1. 运行 add-user.shadd-user.bat 命令。
  2. 选择是否添加管理用户或应用程序用户。
  3. 选择用户要添加到的域。默认情况下,唯一可用的域是 ManagementRealmApplicationRealm。如果添加了自定义域,则可以手动输入其名称。
  4. 提示时输入所需的用户名、密码和可选角色。更改将写入到安全域的每个属性文件中。

3.4.2. 通过 LDAP 添加身份验证

JBoss EAP 还支持使用 LDAP 身份验证来保护管理界面。LDAP 及其工作原理与 JBoss EAP 的基础知识、使用 LDAP 以及管理界面的使用 LDAP 以及在红帽 JBoss 企业应用平台 7 安全架构指南ManagementRealm 部分使用 LDAP 的基础知识。有关如何使用 LDAP 身份验证保护管理接口的更多信息,请参阅 JBoss EAP 如何配置身份管理 指南中的使用 LDAP 保护管理接口 部分。

3.4.3. 使用 JAAS 来保护管理界面

JAAS 是一种声明性安全 API,供 JBoss EAP 用于管理安全性。有关 JAAS 和声明安全性的更多详情和背景信息,请参阅 Red Hat JBoss Enterprise Application Platform 安全架构指南中的 Declative Security and JAAS 部分。

注意

当 JBoss EAP 实例配置为以 ADMIN_ONLY 模式运行时,不支持使用 JAAS 来保护管理接口。有关 ADMIN_ONLY 模式的更多信息,请参阅 JBoss EAP 配置指南中的 ADMIN_ONLY Mode 一节中的运行 JBoss EAP。

要使用 JAAS 对管理接口进行身份验证,必须执行以下步骤:

  1. 创建安全域。

    在这个示例中,使用 UserRoles 登录模块创建了一个安全域,但也可以使用其他登录模块:

    /subsystem=security/security-domain=UsersLMDomain:add(cache-type=default)
    
    /subsystem=security/security-domain=UsersLMDomain/authentication=classic:add
    
    /subsystem=security/security-domain=UsersLMDomain/authentication=classic/login-module=UsersRoles:add(code=UsersRoles, flag=required,module-options=[("usersProperties"=>"users.properties"),("rolesProperties"=>"roles.properties")])
  2. 创建具有 JAAS 身份验证的安全域。

    /core-service=management/security-realm=SecurityDomainAuthnRealm:add
    
    /core-service=management/security-realm=SecurityDomainAuthnRealm/authentication=jaas:add(name=UsersLMDomain)
  3. 更新 http-interface 管理界面,以使用新的安全域。

    /core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=SecurityDomainAuthnRealm)
  4. 可选: 分配组成员资格。

    属性 assign-groups 决定在安全域中加载的用户成员资格信息是否用于安全域中的组分配。当设置为 true 时,这个组分配用于基于角色的访问控制(RBAC)。

    /core-service=management/security-realm=SecurityDomainAuthnRealm/authentication=jaas:write-attribute(name=assign-groups,value=true)