搜索

5.4.2. 示例

download PDF
注意

此示例假定已创建了名为 LDAPRealm 的安全域。它连接到现有的 LDAP 服务器,并配置为进行身份验证和授权。用于显示当前配置的命令包括在阅读当前缓存配置中。有关创建使用 LDAP 的安全域的更多详细信息,请参阅使用传统核心管理身份验证

基本配置示例

"core-service" : { 
  "management" : { 
    "security-realm" : { 
      "LDAPRealm" : { 
        "authentication" : {
          "ldap" : {
            "allow-empty-passwords" : false,
            "base-dn" : "...", 
            "connection" : "MyLdapConnection", 
            "recursive" : false, 
            "user-dn" : "dn", 
            "username-attribute" : "uid", 
            "cache" : null
          }
        },
        "authorization" : {
          "ldap" : {
            "connection" : "MyLdapConnection", 
            "group-search" : {
              "group-to-principal" : { 
                "base-dn" : "...", 
                "group-dn-attribute" : "dn", 
                "group-name" : "SIMPLE", 
                "group-name-attribute" : "uid", 
                "iterative" : true, 
                "principal-attribute" : "uniqueMember", 
                "search-by" : "DISTINGUISHED_NAME", 
                "cache" : null 
              }
            }, 
            "username-to-dn" : {
              "username-filter" : { 
                "attribute" : "uid", 
                "base-dn" : "...", 
                "force" : false, 
                "recursive" : false, 
                "user-dn-attribute" : "dn", 
                "cache" : null 
                }
              } 
            }
          }, 
        } 
      } 
  }
}

在所有出现 "cache": null 的区域中,可以配置一个缓存:

身份验证
身份验证期间,使用此定义发现用户的可分辨名称,并尝试连接到 LDAP 服务器并验证其身份是否使用这些凭据来实现。
group-search 定义
有组搜索定义。在本例中,它是迭代搜索,因为在上面的示例配置中, 被设置为 true。首先,将执行搜索以查找用户是以下直接成员的所有组:之后,将对每个组执行搜索,以确定它们是否与其他组成员资格。此过程将继续,直到检测到循环引用或最终组不属于任何其他组。
组搜索 中的用户名到dn 定义
组搜索取决于用户的可分辨名称的可用性。本节并不适用于所有情况,但可以作为第二次尝试来发现用户的可分辨名称。当支持第二种身份验证形式(如本地身份验证)时,这可能很有用,甚至也可以是必需的。

5.4.2.1. 阅读 Current Cache 配置

注意

本节和后续小节中使用的 CLI 命令使用 LDAPRealm 作为安全域的名称。这应当替换为正在配置的实际域的名称。

读取当前缓存配置的 CLI 命令

/core-service=management/security-realm=LDAPRealm:read-resource(recursive=true)

输出。

{ 
  "outcome" => "success", 
  "result" => { 
    "map-groups-to-roles" => true, 
    "authentication" => {
      "ldap" => { 
        "advanced-filter" => undefined, 
        "allow-empty-passwords" => false, 
        "base-dn" => "dc=example,dc=com", 
         "connection" => "ldapConnection", 
         "recursive" => true, 
         "user-dn" => "dn", 
         "username-attribute" => "uid",
         "cache" => undefined 
        }
      }, 
      "authorization" => {
        "ldap" => { 
          "connection" => "ldapConnection", 
          "group-search" => {
            "principal-to-group" => { 
              "group-attribute" => "description", 
              "group-dn-attribute" => "dn", 
              "group-name" => "SIMPLE", 
              "group-name-attribute" => "cn", 
              "iterative" => false, 
              "prefer-original-connection" => true, 
              "skip-missing-groups" => false, 
              "cache" => undefined 
            }
          }, 
          "username-to-dn" => {
            "username-filter" => { 
              "attribute" => "uid", 
              "base-dn" => "ou=Users,dc=jboss,dc=org", 
              "force" => true, 
              "recursive" => false, 
              "user-dn-attribute" => "dn", 
              "cache" => undefined 
            }
          } 
        }
      }, 
      "plug-in" => undefined, 
      "server-identity" => undefined 
    }
  }

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.