0

我正在创建一个自助服务,可以为用户授予应用程序角色(在元 [ldap] 中定义)。我们在元数据中的结构并不统一。它看起来像这样:

o=meta
  ou=Firm
    ou=AppRoles
      ou=GitLab
        cn=Admin
        cn=User
      ou=SAP
        ou=SAPCRT
          cn=Admin
          cn=User
        ou=SAPLST
          ou=NW
            cn=Admin
            cn=User
          ou=ST
            cn=Admin
            cn=User

等等......所以你看,cn(Approle)并不总是在同一水平上。

这是我到目前为止的代码。它发现'ou's like GitLab Admin 和 GitLab User。但我需要收到一份包含 Gitlab 管理员、Gitlab 用户、SAP/SAPCRT 管理员、SAP/SAPCRT 用户、SAP/SAPLST/NW 管理员等的列表。

base = 'ou=AppRoles,ou=Firm,o=META'
filter = Net::LDAP::Filter.begins('ou', query)

如何设置 Net::LDAP 以递归方式过滤/搜索?

4

1 回答 1

0

不确定这是否会打印 AppRole 下的所有 cn,但是使用“puts”命令你会看到输出,你能告诉我们这段代码的返回吗?

def get_ldap_users(ldap_password)
      filter = Net::LDAP::Filter.eq("ou", "AppRoles")
      treebase = "dc=yourdomainhere"
      get_ldap(ldap_password).search(:base => treebase, :filter => filter) do |entry|
       puts "CN: #{entry.cn}"
      end
end
于 2019-09-13T17:34:12.227 回答