2013-05-14 71 views
0

我想配置acl用戶的屬性allowedService與應用程序名稱的用戶只能登錄到特定的應用程序。需要幫助配置LDAP acl

我們的用戶如下:

dn: ou=People,dc=prime,dc=ds,dc=geo,dc=com 

dn: uid=user1,ou=People,dc=prime,dc=ds,dc=geo,dc=com 
uid: user1 
allowedService: gitlab 

dn: uid=user2,ou=People,dc=prime,dc=ds,dc=geo,dc=com 
uid: user2 
allowedService: zabbix 

dn: uid=user3,ou=People,dc=prime,dc=ds,dc=geo,dc=com 
objectClass: top 
uid: user3 
allowedService: zabbix 

我們創建了一個用戶,如下所示:

dn: cn=gitlab,ou=Applications,ou=Groups,dc=prime,dc=ds,dc=geo,dc=com 
cn: gitlab 
uid: gitlab 

現在,在應用中,我們給出的細節如下: gitlab配置

base: ou=People,dc=prime,dc=ds,dc=geo,dc=com 
uid: uid 
bind_dn: cn=gitlab,ou=Applications,ou=Groups,dc=prime,dc=ds,dc=geo,dc=com 
password: password 

現在在acl中,我們嘗試瞭如下各種選項:

[email protected]:/# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}hdb)' olcAccess 
dn: olcDatabase={1}hdb,cn=config 
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=ds,dc=geo,dc=com" write by * none 
olcAccess: {1}to dn.base="" by * read 
olcAccess: {2}to dn.subtree="ou=Applications,ou=Groups,dc=prime,dc=ds,dc=geo,dc=com" by self write by * write 
olcAccess: {3}to dn.subtree="ou=People,dc=prime,dc=ds,dc=geo,dc=com" by self write by * auth 
olcAccess: {4}to dn.subtree="ou=People,dc=prime,dc=ds,dc=geo,dc=com" filter="(allowedService=gitlab)" by dn.exact="cn=gitlab,ou=Applications,ou=Groups,dc=prime,dc=ds,dc=geo,dc=com" write by self write 

但是,沒有用戶可以登錄。但我們更改olcAccess: {3}to dn.subtree="ou=People,dc=prime,dc=ds,dc=geo,dc=com" by self write by * write,所有用戶都可以登錄。

但實際上我們需要的僅僅是user1只需要登錄到gitlab應用程序。而用戶user2和user3只需要登錄到zabbix應用程序

任何人都可以請幫助我爲此配置acl。提前致謝。

感謝

地理

回答

0

這不是ACL是對。他們不控制誰可以登錄。它們控制登錄用戶可以讀取或修改的子樹的哪些部分。