Ir al contenido

Parámetros de configuración de LDAP

La integración de OpenKM con LDAP se basa en varias búsquedas LDAP para recuperar datos.

Las consultas LDAP se componen de tres elementos:

  1. Atributo u objeto a recuperar.
  2. Nodo base para acotar la solicitud.
  3. Opciones de filtrado.

La consulta para recuperar el atributo mail de un objeto de tipo person con valor de atributo sAMAccountName {0} — este parámetro indica el userId — desde el nodo cn=users,dc=company,dc=local y sus descendientes.

Ventana de terminal
principal.ldap.mail.attribute
mail
principal.ldap.mail.search.base
cn=users,dc=company,dc=local
principal.ldap.mail.search.filter
(&(objectclass=person)(sAMAccountName={0}))
  • principal.ldap.user.* se usa para recuperar la lista de usuarios.
  • principal.ldap.username.* se usa para recuperar el nombre de usuario.
  • principal.ldap.mail.* se usan para recuperar las direcciones de correo de los usuarios.
  • principal.ldap.role.* se usan para recuperar la lista de roles.
  • principal.ldap.roles.by.user.* se usan para recuperar los roles de un usuario.
  • principal.ldap.users.by.role.* se usan para recuperar los usuarios de un rol.

Para recuperar datos, los argumentos se inyectan en las opciones de filtro. Por ejemplo, para obtener el correo del usuario, la aplicación usa el parámetro {0} para establecer el valor del argumento — userId — en las opciones de filtrado.

Consultas que usan parámetros para el filtrado:

  • principal.ldap.mail.search.filter=(sAMAccountName={0}). Donde {0} es el valor de atributo recuperado de principal.ldap.user.attribute.
  • principal.ldap.roles.by.user.search.filter=(&(objectclass=user)(sAMAccountName={0})). Donde {0} es el valor de atributo recuperado de principal.ldap.user.attribute.
  • principal.ldap.username.search.filter=(sAMAccountName={0}). Donde {0} es el valor de atributo recuperado de principal.ldap.user.attribute.
  • principal.ldap.users.by.role.search.filter=(&(objectClass=group)(cn={0})). Donde {0} es el valor de atributo recuperado de principal.ldap.role.attribute.
Campo / Propiedad Tipo Descripción
principal.adapter String El parámetro está obsoleto desde la versión 8.1.12
Clase usada para conectar con LDAP.
system.login.lowercase String Por defecto está vacío. Al conectar con AD (Microsoft Active Directory), debe establecerse en “true”, lo que obliga a todos los usuarios a iniciar sesión con un ID de usuario en minúsculas. La razón es que OpenKM distingue mayúsculas y minúsculas, y Microsoft Active Directory no.
principal.ldap.server String Servidor LDAP.
principal.ldap.security.principal String Nombre distinguido (DN) del usuario LDAP.
principal.ldap.security.credentials String Contraseña del usuario LDAP.
principal.ldap.referral String Esta propiedad especifica cómo gestiona OpenKM las referencias (referrals) enviadas por AD en los resultados de búsqueda. En la mayoría de los casos, este valor está vacío.
Nota para usuarios de Active Directory (AD): los servidores AD no pueden gestionar automáticamente los referrals, lo que provoca que se lance una PartialResultException cada vez que se encuentra un referral en una búsqueda. Para evitarlo, establezca la propiedad ignorePartialResultException en true. Actualmente no hay forma de gestionar manualmente estos referrals como una ReferralException; es decir, o bien obtiene la excepción (y pierde sus resultados), o se ignoran todos los referrals (si el servidor no puede gestionarlos correctamente). No hay una forma sencilla de que se le notifique que se ha ignorado una PartialResultException (salvo en el log).
Más información en Spring LdapTemplate.
Los valores posibles son:
ignore
Si principal.ldap.referral=ignore, se lanzará la siguiente excepción cuando se encuentre un referral:
bash<br>javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'dc=company,dc=com'<br>
follow
Si principal.ldap.referral=follow, OpenKM seguirá automáticamente el referral. Para que funcione correctamente, asegúrese de que OpenKM puede acceder al servidor referenciado. No deberían mostrarse errores de ReferralException.
throw
Si principal.ldap.referral=throw, se lanzará la siguiente excepción:
bash<br>com.sun.jndi.ldap.LdapReferralException: Continuation Reference; remaining name 'dc=company,dc=com'<br>
Más información en Referrals in the JNDI.
principal.ldap.users.from.roles Boolean Cuando es “true”, intenta recuperar todos los usuarios a partir de la lista de roles.
principal.ldap.user.attribute String Atributo de usuario.
principal.ldap.user.search.base List Lista de nodos base.
principal.ldap.user.search.filter String Opciones de filtro.
principal.ldap.username.attribute String Atributo de nombre de usuario
principal.ldap.username.search.base String Nodo base.
principal.ldap.username.search.filter String Opciones de filtro.
principal.ldap.mail.attribute String Atributo de correo.
principal.ldap.mail.search.base String Nodo base.
principal.ldap.mail.search.filter String Opciones de filtro.
principal.ldap.role.attribute String Atributo de rol.
principal.ldap.role.search.base List Lista de nodos base.
principal.ldap.role.search.filter String Opciones de filtro.
principal.ldap.roles.by.user.attribute String Atributo de usuario.
principal.ldap.roles.by.user.search.base String Nodo base.
principal.ldap.roles.by.user.search.filter String Opciones de filtro.
principal.ldap.users.by.role.attribute String Atributo de rol.
principal.ldap.users.by.role.search.base String Nodo base.
principal.ldap.users.by.role.search.filter String Opciones de filtro.
Campo / Propiedad Tipo Descripción
principal.adapter String El parámetro está obsoleto desde la versión 8.1.12
com.openkm.plugin.principal.LdapPrincipalAdapter
system.login.lowercase String true
principal.ldap.server String ldap://192.168.1.20:389
principal.ldap.security.principal String CN=Administrator,OU=OpenKM,DC=company,DC=com
principal.ldap.security.credentials String password
principal.ldap.referral String
principal.ldap.users.from.roles Boolean false
principal.ldap.user.attribute String sAMAccountName
principal.ldap.user.search.base List DC=company,DC=com
principal.ldap.user.search.filter String objectclass=person
principal.ldap.username.attribute String cn
principal.ldap.username.search.base String DC=company,DC=com
principal.ldap.username.search.filter String (sAMAccountName={0})
principal.ldap.mail.attribute String mail
principal.ldap.mail.search.base String DC=company,DC=com
principal.ldap.mail.search.filter String (sAMAccountName={0})
principal.ldap.role.attribute String cn
principal.ldap.role.search.base List DC=company,DC=com
principal.ldap.role.search.filter String objectclass=group
principal.ldap.roles.by.user.attribute String memberOf
principal.ldap.roles.by.user.search.base String DC=company,DC=com
principal.ldap.roles.by.user.search.filter String (&(objectclass=person)(sAMAccountName={0}))
principal.ldap.users.by.role.attribute String member
principal.ldap.users.by.role.search.base String DC=company,DC=com
principal.ldap.users.by.role.search.filter String (&(objectClass=group)(cn={0}))