LDAP - 向 LDAP URL 添加過濾器,以便只有屬於某個組的使用者才能訪問應用程序
我們使應用程序能夠使用 LDAP。
在應用程序的配置中,我們需要通知一個 URL 來連接 LDAP。我們目前提供以下網址…
ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid
**問題:**我們需要在上面的 URL 中添加一個過濾器,以便僅定位屬於“accessgroup”組的使用者,以便將應用程序訪問權限限制為僅屬於該組的使用者。
也就是說,類似的東西……
curl "ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid?sub?(&(memberof=cn=accessgroup,ou=groups,dc=domain,dc=abc,dc=de)(uid=%s))"
我們已經嘗試了數百種設置,但沒有任何效果… =|
團體
cn: accessgroup gidNumber: 1004 memberUid: usera userb userc userd usere userf userg userh useri objectClass: top posixGroup
使用者
cn: User Letter A gecos: User Letter A gender: M gidNumber: 544 givenName: User gotoLastSystemLogin: 01.01.1970 00:00:00 homeDirectory: /home/usera loginShell: /bin/bash mail: user.letter.a@domain.abc.de objectClass: top person organizationalPerson inetOrgPerson gosaAccount posixAccount shadowAccount sambaSamAccount [...] uid: usera uidNumber: 1004 [...]
謝謝!=D
情況:
問題是我們正在嘗試使用 POSIX 組進行過濾,並且沒有特定的覆蓋。存在的是一種有些複雜且費力的解決方法,可以在此處觀察到為 POSIXGROUPS 生成成員屬性。
解決方案:
為了解決這個問題,我們實施了一個簡單的解決方案,可以在這裡看到……
psx-grp-flt - 使用者針對 pgMemberOf (memberOf) 的 posixGroup 成員資格
…基本上是以下…
一個簡單的 Python 2.7 腳本,將每個使用者的 posixGroup(POSIX 組)關聯儲存在他們的 pgMemberOf (memberOf) 屬性中。目的是啟用如下搜尋過濾器…
模型
ldapsearch -x -H ’ldap://127.0.0.1:389’ -b ‘ou=persons,dc=domain,dc=abc,dc=de’
-D ‘cn=admin,dc=domain,dc=abc, dc=de’
-w ‘mySecretValue’
‘(&(pgMemberOf=cn=certaingroup,ou=groups,dc=domain,dc=abc,dc=de)(uid=certainuid))’
例子
ldapsearch -x -H ‘<OPENLDAP_URI>’ -b ‘<PERSONS_OU>,<BASE_DN>’
-D ‘<ADM_USER_DN>’
-w ‘<ADM_USER_PASSWORD>’
‘(&(pgMemberOf=cn=<PSX_GROUP_CN>,<GROUPS_OU> ,<BASE_DN)(uid=<PERSON_UID>))’
此腳本對於我們已經安裝了 OpenLDAP 並且我們希望以非常簡單的方式為已經存在的 POSIX 組提供過濾器並且不創建新類型的組的情況很有用。當無法安裝覆蓋或此過程過於費力或風險時也很有用。
謝謝!=D
您的 LDAP 伺服器的 memberOf 屬性是如何創建的?您是否檢查過以確保您的使用者確實具有 memberOf 屬性?
例如,在 OpenLDAP 中,僅當您使用 memberof 覆蓋或使用動態列表管理它們時才會填充 memberOf。