Parámetros de configuración de 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 que se desea obtener.
- Nodo base para delimitar el ámbito de la petición.
- Opciones de filtrado.
Consulta de ejemplo
Sección titulada «Consulta de ejemplo»Consulta para obtener el atributo mail de un objeto de tipo person cuyo atributo sAMAccountName tenga el valor {0} (este parámetro indica el identificador del usuario), 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 utiliza para obtener la lista de usuarios.
- principal.ldap.username.* se utilizan para obtener el nombre del usuario.
- principal.ldap.mail.* se utilizan para obtener las direcciones de correo de los usuarios.
- principal.ldap.role.* se utilizan para obtener la lista de roles.
- principal.ldap.roles.by.user.* se utilizan para obtener los roles de un usuario.
- principal.ldap.users.by.role.* se utilizan para obtener los usuarios de un rol.
Para la obtención de datos, estos se inyectan como argumentos en los filtros de las opciones. Por ejemplo, para obtener el correo del usuario, la aplicación utiliza el parámetro {0} para establecer el valor del argumento (el identificador del usuario) en las opciones de filtrado.
Consultas que utilizan parámetros para el filtrado:
- 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»| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| principal.adapter | String | Clase utilizada para conectar con LDAP. |
| system.login.lowercase | String | De forma predeterminada está vacío. Al conectar con AD (Microsoft Active Directory) debe establecerse en “true”, lo que obliga a que todos los usuarios inicien sesión con el identificador de usuario en minúsculas. El motivo es que OpenKM distingue entre mayúsculas y minúsculas, mientras que 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) que envía AD en los resultados de búsqueda. En la mayoría de los casos, este valor está vacío. Nota para los usuarios de Active Directory (AD): los servidores AD no pueden gestionar las referencias automáticamente, lo que provoca que se lance una PartialResultException cada vez que se encuentra una referencia en una búsqueda. Para evitarlo, establezca la propiedad ignorePartialResultException en true. Actualmente no hay forma de gestionar manualmente estas referencias en forma de ReferralException; es decir, o bien se obtiene la excepción (y se pierden los resultados), o bien se ignoran todas las referencias (si el servidor no puede gestionarlas correctamente). No hay una forma sencilla de recibir una notificación de que se ha ignorado una PartialResultException (aparte del registro).Más información en Spring LdapTemplate. Los valores pueden ser: “ignore” Si principal.ldap.referral=ignore, se lanzará la siguiente excepción cuando se encuentre una referencia: 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 la referencia. Para que funcione correctamente, asegúrese de que OpenKM pueda acceder al servidor referenciado. No deberían mostrarse los errores sobre ReferralExceptions. “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 del 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 del 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 del correo. |
| principal.ldap.mail.search.base | String | Nodo base. |
| principal.ldap.mail.search.filter | String | Opciones de filtrado. |
| principal.ldap.role.attribute | String | Atributo del 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 del 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 del 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»| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| principal.adapter | String | 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})) |