【问题标题】:How to search roles in ldap recursively with Net::LDAP in Ruby如何在 Ruby 中使用 Net::LDAP 递归搜索 ldap 中的角色
【发布时间】:2019-09-13 07:17:50
【问题描述】:

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

【问题讨论】:

    标签: ruby ldap ldap-query netldap


    【解决方案1】:

    不确定这是否会打印 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
    

    【讨论】:

    • 此代码块返回“AppRoles”级别上所有cns的列表。
    猜你喜欢
    • 2015-09-02
    • 2017-08-28
    • 2014-12-11
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2011-08-07
    相关资源
    最近更新 更多