LDAP: agregue un filtro a una URL LDAP para que solo los usuarios que pertenecen a un determinado grupo puedan acceder a la aplicación.

LDAP: agregue un filtro a una URL LDAP para que solo los usuarios que pertenecen a un determinado grupo puedan acceder a la aplicación.

Habilitamos una aplicación para utilizar LDAP.

En la configuración de la aplicación, necesitamos informar una URL para conectarnos a LDAP. Actualmente proporcionamos la siguiente URL...

ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid

PREGUNTA:Necesitamos agregar un filtro a la URL anterior para que solo se ubiquen los usuarios que pertenecen al grupo "grupo de acceso" para limitar el acceso a la aplicación solo a los usuarios que pertenecen a este grupo.

O sea, algo parecido a esto...

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))"

Hemos probado cientos de configuraciones y nada funciona... =|

GRUPO

cn:
accessgroup

gidNumber:
1004

memberUid:
usera
userb
userc
userd
usere
userf
userg
userh
useri

objectClass:
top
posixGroup

USUARIOS

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

[...]

¡Gracias! =D

Respuesta1

¿Cómo se crea el atributo memberOf de su servidor LDAP? ¿Ha verificado para asegurarse de que sus usuarios realmente tengan atributos memberOf?

En OpenLDAP, por ejemplo, memberOf solo se completa si usa la superposición memberof o los administra con listas dinámicas.

Respuesta2

SITUACIÓN:

El problema es que estamos intentando filtrar usando grupos POSIX y no hay una superposición específica para eso. Lo que existe es una solución algo compleja y laboriosa que se puede observar aquí.GENERAR UN ATRIBUTO MIEMBROF PARA POSIXGROUPS.

SOLUCIÓN:

Para resolver este problema implementamos una solución simple que se puede ver aquí...

psx-grp-flt - membresías de posixGroup del usuario contra pgMemberOf (memberOf)

...que básicamente es lo siguiente...

Un script simple de Python 2.7 que almacena las asociaciones posixGroup (Grupo POSIX) de cada usuario en su atributo pgMemberOf (memberOf). El propósito es habilitar filtros de búsqueda como los siguientes...

MODELO

ldapsearch -x -H 'ldap://127.0.0.1:389' -b 'ou=personas,dc=dominio,dc=abc,dc=de'
-D 'cn=admin,dc=dominio,dc=abc, dc=de'
-w 'mySecretValue'
'(&(pgMemberOf=cn=certaingroup,ou=groups,dc=dominio,dc=abc,dc=de)(uid=certainuid))'

EJEMPLO

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 es útil para los casos en los que ya tenemos un OpenLDAP instalado y queremos poner a disposición filtros para Grupos POSIX que ya existen de una forma muy sencilla y sin crear nuevos tipos de grupos. También es útil cuando no se pueden instalar superposiciones o cuando este proceso es demasiado laborioso o arriesgado.

¡Gracias! =D

información relacionada