2.4. 为 INP 配置 Identity Stores


由于 IDP 使用安全域,所以 IDP 的功能与支持它的实际身份存储无关。因此,管理员在为 IDP 配置安全域时有许多选项。有关安全域和登录模块的详细信息,请参阅 JBoss EAP 安全架构指南的安全 https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.3/html-single/security_architecture/#security_subsystem 子系统小节。与为安全域设置任何登录模块一样,请注意不同的身份存储可提供不同的功能和性能权衡。

设置使用身份存储的安全域时需要执行以下步骤:

注意

在本文档中,Database 登录模块和 LDAP 登录模块显示为示例,但也可以配置其他身份存储和登录模块以用于 IDP。

注意

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

  1. 设置身份存储。

    在可以将安全域和登录模块配置为使用身份提供程序之前,必须先设置身份提供程序,有时也必须设置与该身份提供程序的连接。

    1. 为 Database 登录模块配置身份存储。

      数据库支持的身份存储所需的第一项是数据库,供登录模块使用。

      需要以下数据点:

      • 用户名
      • 密码
      • 角色
      • Role Groups

      Database Login 模块需要能够创建将用户名映射到密码的查询,以及将用户名映射到角色和角色组的查询。这些信息可以通过多种方式存储在数据库中,但创建包含表的数据库不在本指南的范围之内。本例中假定已创建下表:

      Expand
      表 2.2. SSO-users
      usernamepasswd

      Sarah

      测试123!

      Expand
      表 2.3. samba-roles
      usernamerole

      role-group

      Sarah

      示例

      samba-Users

      创建数据源不在本指南的范围之内。有关设置数据源的详细信息,请参阅 JBoss EAP 配置指南中的 Datasource Management 部分。

      本例中假定已创建、正确配置了名为 idpDS 的数据源,并将其部署到 JBoss EAP 实例。此数据源连接到存储 sso-users 和 sso- roles 表的数据库。

    2. 配置 LDAP 登录模块的身份存储。

      设置 LDAP 登录模块之前,需要正确配置的 LDAP 服务器。与 Database 登录模块不同,设置 LDAP 登录模块时不需要数据源。JBoss EAP 安全架构指南介绍了 LDAP 的基础知识及其与 JBoss EAP 安全性 的关系

      1. 设置 LDAP 服务器。

        设置 LDAP 服务器不在本指南的范围之内。在本例中,可以通过 http://ldaphost.example.com:1389/ 访问 LDAP 服务器。

      2. 目录信息示例:

        LDAP 服务器的目录结构和组织可能会有很大差异,具体取决于用例和组织需求。本例中创建了以下条目,以 LDIF 格式显示:

        dn: dc=example,dc=com
        objectclass: top
        objectclass: dcObject
        objectclass: organization
        dc: example
        o:  Example
        #=============================
        dn: ou=People,dc=example,dc=com
        objectclass: top
        objectclass: organizationalUnit
        ou: People
        #=============================
        dn: uid=jsmith,ou=People,dc=example,dc=com
        objectclass: top
        objectclass: uidObject
        objectclass: person
        uid: jsmith
        cn: John
        sn: Smith
        userPassword: theduke
        #=============================
        dn: ou=Roles,dc=example,dc=com
        objectclass: top
        objectclass: organizationalUnit
        ou: Roles
        #=============================
        dn: cn=Sample,ou=Roles,dc=example,dc=com
        objectclass: top
        objectclass: groupOfNames
        cn: Sample
        member: uid=jsmith,ou=People,dc=example,dc=com
        description: the Sample group
        Copy to Clipboard Toggle word wrap
  2. 添加安全域。

    旦设置了身份存储本身,并且配置了 JBoss EAP 实例和身份存储之间的连接,即可创建和配置安全域。以下命令显示如何创建空的安全域:将 MY-DOMAIN 替换为所需安全域的名称。

    用于添加安全域的管理 CLI 命令

    /subsystem=security/security-domain=MY-DOMAIN:add(cache-type=default)
    Copy to Clipboard Toggle word wrap

  3. 将 authentication 部分和 login 模块添加到安全域。创建空安全域后,必须通过添加登录模块为其创建身份验证部分。以下命令显示如何向现有安全域添加空身份验证部分。

    将身份验证部分添加到安全域的管理 CLI 命令

    /subsystem=security/security-domain=MY-DOMAIN/authentication=classic:add
    Copy to Clipboard Toggle word wrap

    空身份验证部分创建好后,可以添加登录模块并配置为使用所需的身份存储。将登录模块添加到安全域后,通常需要重新加载配置。

    以下是用于添加登录模块和重新加载配置的常规命令结构。将 MY-DOMAINMY-LOGIN-MODULEMY-CONFIGURATION 替换为适当的值:

    /subsystem=security/security-domain=MY-DOMAIN/authentication=classic/login-module=MY-LOGIN-MODULE:add(MY-CONFIGURATION)
    
    reload
    Copy to Clipboard Toggle word wrap
    • 添加 Database 登录模块。

      注意

      本例假定 步骤 1 中已创建了名为 idpDS 的数据源,并且第 2 步 中创建了名为 idp-db-domain 的安全域。

      配置身份验证部分的管理 CLI 命令以使用数据库登录模块

      /subsystem=security/security-domain=idp-db-domain/authentication=classic/login-module=Database:add(code=Database,flag=required,module-options=[("dsJndiName"=>"java:/idpDS"),("principalsQuery"=>"select passwd from 'sso-users' where username=?"),("rolesQuery"=>"select role, role-group from 'sso-roles' where username=?")])
      
      reload
      Copy to Clipboard Toggle word wrap

    • 添加 LDAP 登录模块。

      配置 LdapExtended 登录 模块所需的步骤可在 How to Configure Identity Management 中找到。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat