Habilitamos um aplicativo para usar LDAP.
Na configuração da aplicação precisamos informar uma URL para conexão ao LDAP. No momento, estamos fornecendo o seguinte URL...
ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid
PERGUNTA:Precisamos adicionar um filtro na URL acima para que apenas os usuários pertencentes ao grupo "accessgroup" sejam localizados para limitar o acesso da aplicação apenas aos usuários pertencentes a este grupo.
Ou seja, algo parecido com isso...
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))"
Tentamos centenas de configurações e nada funciona... =|
GRUPO
cn:
accessgroup
gidNumber:
1004
memberUid:
usera
userb
userc
userd
usere
userf
userg
userh
useri
objectClass:
top
posixGroup
USUÁRIOS
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
[...]
Obrigado! =D
Responder1
Como o atributo memberOf do seu servidor LDAP é criado? Você verificou se seus usuários realmente possuem atributos memberOf?
No OpenLDAP, por exemplo, memberOf só é preenchido se você usar a sobreposição memberof ou gerenciá-los com listas dinâmicas.
Responder2
SITUAÇÃO:
O problema é que estamos tentando filtrar usando Grupos POSIX e não existe uma sobreposição específica para isso. O que existe é uma solução alternativa um tanto complexa e trabalhosa que pode ser observada aquiGERANDO UM ATRIBUTO MEMBEROF PARA POSIXGROUPS.
SOLUÇÃO:
Para resolver este problema implementamos uma solução simples que pode ser vista aqui...
psx-grp-flt - associações ao posixGroup do usuário contra pgMemberOf (memberOf)
... que basicamente é o seguinte ...
Um script simples do Python 2.7 que armazena as associações posixGroup (Grupo POSIX) de cada usuário em seu atributo pgMemberOf (memberOf). O objetivo é ativar filtros de pesquisa como abaixo...
MODELO
ldapsearch -x -H 'ldap://127.0.0.1:389' -b 'ou=pessoas,dc=domínio,dc=abc,dc=de'
-D 'cn=admin,dc=domínio,dc=abc, dc=de'
-w 'meuSecretValue'
'(&(pgMemberOf=cn=determinadogrupo,ou=grupos,dc=domínio,dc=abc,dc=de)(uid=determinado))'EXEMPLO
ldapsearch -x -H '<OPENLDAP_URI>' -b '<PERSONS_OU>,<BASE_DN>'
-D '<ADM_USER_DN>'
-w '<ADM_USER_PASSWORD>'
'(&(pgMemberOf=cn=<PSX_GROUP_CN>,<GROUPS_OU> ,<BASE_DN)(uid=<PERSON_UID>))'Este script é útil para casos onde já temos um OpenLDAP instalado e queremos disponibilizar filtros para Grupos POSIX que já existem de uma forma muito simples e sem criar novos tipos de grupos. Também é útil quando não é possível instalar sobreposições ou quando este processo é muito trabalhoso ou arriscado.
Obrigado! =D