Ldap

LDAP - 向 LDAP URL 添加過濾器,以便只有屬於某個組的使用者才能訪問應用程序

  • November 2, 2021

我們使應用程序能夠使用 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。

引用自:https://serverfault.com/questions/1073053