我正在创建一个自助服务,可以为用户授予应用程序角色(在元 [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 以递归方式过滤/搜索?