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:
- Atributo u objeto a recuperar.
- Nodo base para acotar la solicitud.
- 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 con valor de 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 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.
Parámetros
Sección titulada «Parámetros»| 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. |
Configuración de ejemplo
Sección titulada «Configuración de ejemplo»| 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 | |
| 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})) |