Parámetros de configuración de LDAP
La integración de OpenKM con LDAP se basa en un par de búsquedas LDAP para recuperar datos.
Las consultas LDAP se componen de tres elementos:
- Atributo u objeto que se desea recuperar.
- Nodo base para delimitar la petición.
- Opciones de filtrado.
Consulta de ejemplo
Sección titulada «Consulta de ejemplo»La consulta para recuperar el atributo mail de un objeto de tipo person cuyo atributo sAMAccountName tiene el valor {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 utilizan para recuperar la lista de usuarios.
- principal.ldap.username.* se utilizan para recuperar el nombre de usuario.
- principal.ldap.mail.* se utilizan para recuperar la dirección de correo del usuario.
- principal.ldap.role.* se utilizan para recuperar la lista de roles.
- principal.ldap.roles.by.user.* se utilizan para recuperar los roles de un usuario.
- principal.ldap.users.by.role.* se utilizan para recuperar los usuarios de un rol.
Para recuperar datos, se inyectan argumentos en los filtros. Por ejemplo, para obtener el correo del usuario, la aplicación utiliza el parámetro {0} para establecer el valor del argumento - userId - en las opciones de filtrado.
Consultas que utilizan parámetros para filtrar:
- principal.ldap.mail.search.filter=(sAMAccountName={0}). Donde {0} es el valor del atributo recuperado de principal.ldap.user.attribute.
- principal.ldap.roles.by.user.search.filter=(&(objectclass=user)(sAMAccountName={0})). Donde {0} es el valor del atributo recuperado de principal.ldap.user.attribute.
- principal.ldap.username.search.filter=(sAMAccountName={0}). Donde {0} es el valor del atributo recuperado de principal.ldap.user.attribute.
- principal.ldap.users.by.role.search.filter=(&(objectClass=group)(cn={0})). Donde {0} es el valor del atributo recuperado 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 | Por defecto está vacío. En caso de conectar con AD (Microsoft Active Directory) debe establecerse a “true”, lo que fuerza a que todos los usuarios inicien sesión con el Id de usuario en minúsculas. El motivo 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) que envía AD en los resultados de búsqueda. En casi todos los casos este valor está vacío. Nota para usuarios de Active Directory (AD): aparentemente, los servidores AD no pueden gestionar las referencias automáticamente, lo que provoca que se lance una PartialResultException siempre que se encuentra una referencia en una búsqueda. Para evitarlo, establezca la propiedad ignorePartialResultException a true. Actualmente no existe forma de gestionar manualmente estas referencias en forma de ReferralException, es decir, o se obtiene la excepción (y se pierden los resultados) o se ignoran todas las referencias (si el servidor no puede gestionarlas correctamente). Tampoco existe ninguna forma sencilla de saber que se ha ignorado una PartialResultException (aparte del registro).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 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, asegúrese de que OpenKM puede acceder al servidor referido. 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 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 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»| Campo / Propiedad | Tipo | Descripción |
|---|---|---|
| principal.adapter | String | com.openkm.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})) |