我們允許應用程式使用 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:
[email protected]
objectClass:
top
person
organizationalPerson
inetOrgPerson
gosaAccount
posixAccount
shadowAccount
sambaSamAccount
[...]
uid:
usera
uidNumber:
1004
[...]
謝謝! =D
答案1
LDAP 伺服器的 memberOf 屬性是如何建立的?您是否檢查過以確保您的使用者確實具有 memberOf 屬性?
例如,在 OpenLDAP 中,只有當您使用memberof 覆寫或使用動態清單管理它們時,才會填入memberOf。
答案2
情況:
問題是我們正在嘗試使用 POSIX 群組進行過濾,但沒有特定的覆蓋。存在的是一種有點複雜且費力的解決方法,可以在此處觀察到為 POSIXGROUPS 產生成員屬性。
解決方案:
為了解決這個問題,我們實施了一個簡單的解決方案,可以在這裡看到...
psx-grp-flt - 針對 pgMemberOf (memberOf) 的使用者 posixGroup 成員身份
....基本上如下...
一個簡單的 Python 2.7 腳本,用於將每個使用者的 posixGroup (POSIX Group) 關聯儲存在其 pgMemberOf (memberOf) 屬性中。目的是啟用如下搜尋過濾器......
模型
ldapsearch -x -H 'ldap://127.0.0.1:389' -b 'ou=人員,dc=域,dc=abc,dc=de'
-D 'cn=admin,dc=域,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>'
'(&(pgMMemberOf=cn=<PSX_USER_PASSWORD>' '(&(pgMM)1 ,<BASE_DN)(uid=<PERSON_UID>))'如果我們已經安裝了 OpenLDAP,並且希望以非常簡單的方式為已經存在的 POSIX 群組提供過濾器,並且無需建立新類型的群組,則此腳本非常有用。當無法安裝覆蓋或此過程過於費力或風險時也很有用。
謝謝! =D