В настоящее время нам необходимо настроить вход в систему LDAP на основе групп для наших пользовательских приложений. У нас есть приложения с именами app1, app2 и т. Д.
Чтобы ограничить пользователям вход в систему для определенного приложения, например, app1, тогда для этого пользователя он должен иметь атрибут с именем allowedService = app1, для входа в приложение 2, которое необходимо пользователю allowedService = app2
Таким образом мы создали пользователей.
Теперь для привязки приложений к ldap мы создали таких пользователей, как
cn = app1, ou = Applications, dc = prime, dc = ds, dc = geo, dc = com cn = app2, ou = Applications, dc = prime, dc = ds, dc = geo, dc = com
Теперь мы настроили LDAP ACL следующим образом:
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=People,dc=prime,dc=ds,dc=geo,dc=com" filter="(allowedService=app1)"
by dn.exact="cn=app1,ou=Applications,dc=prime,dc=ds,dc=geo,dc=com" read
by * break
olcAccess: {3}to dn.subtree="ou=People,dc=prime,dc=ds,dc=geo,dc=com" filter="(allowedService=app2)"
by dn.exact="cn=app2,ou=Applications,dc=prime,dc=ds,dc=geo,dc=com" read
by * break
olcAccess: {4}to dn.subtree="ou=People,dc=prime,dc=ds,dc=geo,dc=com" attrs="entry" by dn.sub="ou=Applications,dc=prime,dc=ds,dc=geo,dc=com" read
by dn="cn=admin,dc=ds,dc=geo,dc=com" write
by self read
by * break
olcAccess: {5}to dn.subtree="ou=People,dc=prime,dc=ds,dc=geo,dc=com"
by dn.exact="cn=app3,ou=Applications,dc=prime,dc=ds,dc=geo,dc=com" read
by users read
olcAccess: {6}to dn.subtree="dc=prime,dc=ds,dc=geo,dc=com"
by anonymous write
Но когда любое приложение, которое не поддерживает фильтр (например, suiteCRM), мы создали правило olcAccess: {5} и свяжи это с app3 user, но тогда весь ACL не работает, и все пользователи могут войти во все приложения.
Так может ли кто-нибудь помочь нам в этом