LDAP - 將過濾器新增至 LDAP URL,以便只有屬於特定群組的使用者才能存取該應用程式

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:
[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

相關內容