Cómo escribir filtros de búsqueda LDAP
Aviso de la plataforma: Solo servidor y centro de datos: Este artículo solo se aplica a los productos de Atlassian en las plataformas de servidor y centro de datos.
Propósito
Este documento describe cómo construir un filtro más sofisticado para los atributos Filtro de Objetos de Usuario y Filtro de Objetos de Grupo en la configuración LDAP para aplicaciones Atlassian.
Qué es un filtro
Los filtros se pueden usar para restringir el número de usuarios o grupos a los que se permite acceder a una aplicación. En esencia, el filtro limita desde qué parte del árbol LDAP se sincroniza la aplicación.
Un filtro puede y debe escribirse tanto para usuarios como para miembros de grupos. Esto garantiza que no está inundando su aplicación con usuarios y grupos que no necesitan acceso.
Solución
Al construir un filtro, lo mejor es elegir un atributo común del conjunto de usuarios que desea permitir el acceso a la aplicación. En la mayoría de los casos, este es el atributo que denota la pertenencia a un grupo o una clase de objeto como «Persona»
El atributo utilizado para denotar la pertenencia a un grupo no es común a todos los tipos de LDAP. Algunos ejemplos de este atributo pueden ser «Pertenencia a un grupo»o» Miembro »
¿Cómo hago coincidir más de un atributo?
Por ejemplo, si mis usuarios se distinguen por tener dos atributos de clase de objeto (uno igual a ‘persona’ y otro a ‘usuario’), así es como lo compararía:
(&(objectClass=person)(objectClass=user))
Observe el ampersand symbol '&'
símbolo en el inicio. Traducido esto significa: buscar objectClass = persona Y object = usuario.
Alternativamente,
(|(objectClass=person)(objectClass=user))
Traducido esto significa: buscar objectClass = persona U objeto=usuario.
El pipe symbol '|'
denota ‘O’. Como no se trata de un carácter XML especial, no debería ser necesario escapar.
Comodines
(&(objectClass=user)(cn=*Marketing*))
Esto significa que: busca todas las entradas que tengan objectClass = user Y cn que contenga la palabra ‘Marketing’.
no se admiten cuando se usan en filtros usando ! operadores lógicos (o NO). Consulte a continuación
Los servicios LDAP en sí no admiten comodines para memberOf
attribute
y otros Nombres distintivos al configurar el filtro LDAP.
¿Cómo hago coincidir 3 atributos?
Simplemente agregue una cláusula adicional:
(&(objectClass=user)(objectClass=top)(objectClass=person))
También se pueden agregar cláusulas adicionales para más de tres atributos.
Componentes coincidentes de Nombres Distinguidos
Dado que Microsoft Active Directory no implementa coincidencias extensibles, los siguientes ejemplos no funcionarán con él.
Es posible que desee hacer coincidir parte de un DN, por ejemplo, cuando necesite buscar sus grupos en dos subárboles de su servidor.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))
encontrará grupos con un componente OU de su DN que es ‘Chicago’ o ‘Miami’.
Usando ‘ not ‘
Para excluir entidades que coincidan con una expresión, use’!’.
Así
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))
encontrará todos los grupos de Chicago excepto aquellos con un Wrigleyville OU componente.
Tenga en cuenta los paréntesis adicionales: (!(<expresión>))
Tenga en cuenta que si usa ‘not’ (ie. ‘!’para excluir objetos) debe ser representada como la entidad ‘!’en su archivo XML si está utilizando Confluence 3.4 o inferior.
Para Confluencia 3.4 y siguientes, una vez que haya construido su filtro de búsqueda utilizando este documento, debe escapar el símbolo de signo de exclamación y el símbolo de signo de ampersand antes de agregarlo a su archivo XML. Por ejemplo,
(&(objectClass=person)(!(objectClass=user)))
(&(objectClass=person)(!(objectClass=user)))
Consulte esta documentación externa en otros caracteres XML que necesitan escapar.se convierte en
Filtros de muestra
Estos filtros se escriben para Active Directory. Para usarlos para algo como OpenLDAP, los atributos tendrán que ser cambiados.
Esto solo sincronizará a los usuarios del grupo ‘CaptainPlanet’ – esto se debe aplicar al Filtro de objetos de usuario:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Y esto buscará usuarios que sean miembros de este grupo, ya sea directamente o mediante anidamiento:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Importante para que Active Directory tenga memberOf:1.2.840.113556.1.4.1941 si desea buscar grupos anidados (no reemplace la cadena numérica) dentro del grupo CaptainPlanet.
Esto buscará usuarios que sean miembros de cualquiera o todos los 4 grupos (fuego, viento,agua,corazón)
(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=fire,ou=users,dc=company,dc=com)(memberOf=cn=wind,ou=users,dc=company,dc=com)(memberOf=cn=water,ou=users,dc=company,dc=com)(memberOf=cn=heart,ou=users,dc=company,dc=com)))
Este documento describe cómo construir un filtro más sofisticado para el Filtro de Objetos de Usuario y el Filtro de Objetos de Grupo atributos en la configuración LDAP para aplicaciones Atlassian.
Jira, Confluence, Bambú, Bitbucket
Servidor
Leave a Reply