Parámetros de configuración LDAP
La integración de OpenKM con LDAP se basa en varias búsquedas LDAP para obtener datos.
Las consultas LDAP se componen de tres elementos:
- Atributo u objeto a obtener.
- Nodo base para acotar la petición.
- Opciones de filtrado.
Consulta de ejemplo
Sección titulada «Consulta de ejemplo»La consulta para obtener el atributo mail de un objeto de tipo person con el valor del atributo sAMAccountName {0} -este parámetro indica el userId- desde el nodo cn=users,dc=company,dc=local y sus descendientes.
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}))Consultas LDAP
Sección titulada «Consultas LDAP»- principal.ldap.user.* se usa para obtener la lista de usuarios.
- principal.ldap.username.* se usa para obtener el nombre de usuario.
- principal.ldap.mail.* se usan para obtener las direcciones de correo de los usuarios.
- principal.ldap.role.* se usan para obtener la lista de roles.
- principal.ldap.roles.by.user.* se usan para obtener los roles de un usuario.
- principal.ldap.users.by.role.* se usan para obtener los usuarios de un rol.
Para obtener los datos, los argumentos se inyectan en los filtros de opciones. 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 filtrar:
- principal.ldap.mail.search.filter=(sAMAccountName={0}). Donde {0} es el valor del atributo obtenido de principal.ldap.user.attribute.
- principal.ldap.roles.by.user.search.filter=(&(objectclass=user)(sAMAccountName={0})). Donde {0} es el valor del atributo obtenido de principal.ldap.user.attribute.
- principal.ldap.username.search.filter=(sAMAccountName={0}). Donde {0} es el valor del atributo obtenido de principal.ldap.user.attribute.
- principal.ldap.users.by.role.search.filter=(&(objectClass=group)(cn={0})). Donde {0} es el valor del atributo obtenido de principal.ldap.role.attribute.
Parámetros
Sección titulada «Parámetros»| Field / Property | Type | Description |
|---|---|---|
| principal.adapter | String | Este 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 a “true”, lo que obliga a todos los usuarios a iniciar sesión con un ID de usuario en minúsculas. El motivo es que OpenKM distingue entre 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 los referrals enviados 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 los referrals automáticamente, 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 a 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 bien 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, 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 obtener 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 filtrado. |
| 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 filtrado. |
| principal.ldap.mail.attribute | String | Atributo de correo. |
| principal.ldap.mail.search.base | String | Nodo base. |
| principal.ldap.mail.search.filter | String | Opciones de filtrado. |
| 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 filtrado. |
| 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 filtrado. |
| 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 filtrado. |
Configuración de ejemplo
Sección titulada «Configuración de ejemplo»| Field / Property | Type | Description |
|---|---|---|
| principal.adapter | String | Este 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 | |
| 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})) |