Atualmente, precisamos configurar o login LDAP baseado em grupo para nossos aplicativos personalizados. Temos aplicativos chamados app1, app2 etc.
Para restringir o login dos usuários para um aplicativo específico, por exemplo, app1, para esse usuário, ele deve ter o atributo allowedService = app1 , para fazer login no app2 esse usuário precisa allowedService = app2
Assim, criamos usuários.
Agora, para vincular aplicativos ao ldap, criamos usuários como
cn = app1, ou = Aplicativos, dc = primo, dc = ds, dc = geo, dc = com cn = app2, ou = Aplicativos, dc = primo, dc = ds, dc = geo, dc = com
Agora configuramos a ACL do LDAP da seguinte forma:
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
Mas quando qualquer aplicativo que não suporta filtro (como o suiteCRM), criamos a regra olcAccess: {5} e vinculá-lo ao usuário app3 , mas a ACL inteira não está funcionando e todos os usuários podem fazer login em todos os aplicativos.
Então alguém pode nos ajudar nisso