Ir al contenido
Otras versiones

Cargando…

Ejemplo de OpenLDAP con URL base en el inicio de sesión

dc=com
dc=some
ou=organization
cn=ROLE_ADMIN
memberUid=okmAdmin
memberUid=user1
memberUid=user2
cn=ROLE_USER
memberUid=user3
memberUid=user4
...
ou=organization
uid=user1
mail=user@mail.com
cn=User Name 1
uid=user2
mail=user2@mail.com
cn=User Name 3
uid=user3
mail=user3@mail.com
cn=User Name 3
uid=user4
mail=user4@mail.com
cn=User Name 4

Roles válidos:

  • cn=ROLE_X,ou=roles,dc=some,dc=com
  • cn=ROLE_Y,ou=dept marketing,ou=roles,dc=some,dc=com
  • cn=ROLE_Z,ou=dept sales,ou=roles,dc=some,dc=com

Roles no válidos:

  • cn=ROLE_INVALID,ou=dept,dc=some,dc=com ( cualquier nombre distinguido que no esté incluido en ou=roles,dc=some,dc=com )

Usuarios válidos:

  • uid=USER_X,ou=organization,dc=some,dc=com
  • uid=USER_Y,ou=dept id,ou=organization,dc=some,dc=com
  • uid=USER_Z,ou=dept administrator,ou=organization,dc=some,dc=com

Usuarios no válidos:

  • uid=USER_INVALID,ou=house,dc=some,dc=com ( cualquier nombre distinguido que no esté incluido en ou=organization,dc=some,dc=com )

Vaya a Administration > Configuration parameters:

Campo / Propiedad Tipo Descripción
principal.adapter String com.openkm.principal.LdapPrincipalAdapter
system.login.lowercase String false
principal.ldap.server String ldap://192.168.xxx.xxx:389
principal.ldap.security.principal String cn=Manager,dc=some,dc=com
principal.ldap.security.credentials String password
principal.ldap.referral String
principal.ldap.users.from.roles Boolean false
principal.ldap.user.attribute String uid
principal.ldap.user.search.base List ou=users,dc=some,dc=com
principal.ldap.user.search.filter String (objectClass=inetOrgPerson)
principal.ldap.username.attribute String cn
principal.ldap.username.search.base String ou=users,dc=some,dc=com
principal.ldap.username.search.filter String (uid={0})
principal.ldap.mail.attribute String mail
principal.ldap.mail.search.base String dc=some,dc=com
principal.ldap.mail.search.filter String (uid={0})
principal.ldap.role.attribute String cn
principal.ldap.role.search.base List ou=roles,dc=some,dc=com
principal.ldap.role.search.filter String (objectClass=posixGroup)
principal.ldap.roles.by.user.attribute String cn
principal.ldap.roles.by.user.search.base String ou=roles,dc=some,dc=com
principal.ldap.roles.by.user.search.filter String (memberUid={0})
principal.ldap.users.by.role.attribute String memberUid
principal.ldap.users.by.role.search.base String ou=roles,dc=some,dc=com
principal.ldap.users.by.role.search.filter String (&(objectClass=posixGroup)(cn={0}))
  • Importante: el inicio de sesión (ldap://192.168.0.13:389/dc=some,dc=com) establece las consultas de filtro base por defecto en dc=some,dc=com, que se concatena por defecto en todas las consultas de filtro.
  • La base de filtro de roles (grupos) es ou=roles (el nombre distinguido real es ou=roles,dc=some,dc=com). Cualquier rol válido debe tenerlo como padre. ou=roles apunta realmente a ou=roles,dc=some,dc=com.
  • La base de filtro de usuarios es ou=organization (el nombre distinguido real es ou=organization,dc=some,dc=com). Cualquier usuario válido debe tenerlo como padre.
  • El filtro de usuarios es uid={0}
  • Por último, tenga en cuenta el valor 1 en memberUid={1}.

Aplique los cambios en el fichero openkm.properties.

El parámetro “okm.authentication.database” se utiliza para deshabilitar el inicio de sesión mediante base de datos.

El parámetro “okm.authentication.ldap” se utiliza para habilitar el inicio de sesión mediante LDAP.

#Authentication
okm.authentication.database=false
okm.authentication.ldap=true
#LDAP
ldap.server=ldap://192.168.0.13
ldap.manager.distinguished.name=CN=Administrator,CN=Users,DC=openkm,DC=local
ldap.manager.password=*secret*
ldap.base=DC=openkm,DC=local
ldap.role.attribute=cn
ldap.user.search.filter=uuid={0}
ldap.role.search.filter=memberUid={1}

Otra opción para configurar el inicio de sesión

Sección titulada «Otra opción para configurar el inicio de sesión»

En algunos casos puede interesarle establecer la configuración en el fichero openkm.xml; consulte Configuración de openkm.xml en la documentación para obtener más información.

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd">
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="ldapAuthProvider" />
</security:authentication-manager>
<beans:bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<beans:constructor-arg value="ldap://192.168.0.13:389/dc=some,dc=com"/>
<beans:property name="userDn" value="cn=Manager,dc=some,dc=com"/>
<beans:property name="password" value="******"/>
</beans:bean>
<beans:bean id="ldapAuthProvider" class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
<beans:constructor-arg>
<beans:bean class="org.springframework.security.ldap.authentication.BindAuthenticator">
<beans:constructor-arg ref="contextSource"/>
<beans:property name="userSearch" ref="userSearch"></beans:property>
</beans:bean>
</beans:constructor-arg>
<beans:constructor-arg name="authoritiesPopulator" ref="defaultLdapAuthoritiesPopulator"/>
</beans:bean>
<beans:bean id="userSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
<beans:constructor-arg index="0" value="ou=organization" />
<beans:constructor-arg index="1" value="uid={0}" />
<beans:constructor-arg index="2" ref="contextSource" />
<beans:property name="searchSubtree" value="true" />
</beans:bean>
<beans:bean id="defaultLdapAuthoritiesPopulator" class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
<beans:constructor-arg ref="contextSource"/>
<beans:constructor-arg value="ou=roles"/>
<beans:property name="groupSearchFilter" value="memberUid={1}"/>
<beans:property name="groupRoleAttribute" value="cn"/>
<beans:property name="searchSubtree" value="true" />
<beans:property name="convertToUpperCase" value="true" />
<beans:property name="rolePrefix" value="" />
</beans:bean>
<!--Needed for remember-me services -->
<beans:bean id="userDetailService" class="org.springframework.security.ldap.userdetails.LdapUserDetailsService">
<beans:constructor-arg ref="userSearch"/>
<beans:constructor-arg ref="defaultLdapAuthoritiesPopulator"/>
</beans:bean>
</beans:beans>