Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 4 Next »

En esta breve guía encontrarás los pasos a seguir para poder configurar correctamente el acceso Multi-Dominio en Thuban.

Antes de continuar con esta guía, asegúrate de tener los siguientes datos de los LDAP contigo:

  • ldapHost

  • ldapBase

  • ldapName

  • ldapUserAttributeId

Instrucciones Versiones 7.5.2 en adelante

  1. Dirigirse a la carpeta Context de la instalación de Thuban, ubicar y abrir en un editor de texto el archivo “user-application-context.xml

  2. Agregar los siguientes beans al mismo:

<bean id="thubanAuthenticationProvider" class="com.latintech.thuban.acegi.provider.ThubanMultiDomainAuthenticationProvider">
	<property name="userDetailsService" ref="userDetailsService"/>
	<property name="loginService" ref="loginService"/>
</bean>

<bean id="userDetailsService" class="com.latintech.thuban.acegi.userdetails.ThubanMultiDomainUserDetailsService">
	<property name="adminService" ref="adminService"/>
	<property name="securityService" ref="securityService"/>
</bean>

Estos beans sobre escriben los que vienen configurados por defecto en Thuban reemplazándolo por unos que permiten la autenticación Multi Dominio. Desde la versión 7.5.2, la aplicación soporta la autenticación contra un solo LDAP (Dominio) por defecto.

Luego se deben agregar los siguientes bean para listar y configurar los distintos dominios deseados:

<bean id="domains" class="org.apache.commons.collections.map.LinkedMap">
  <constructor-arg>
    <map>
     <entry>
       <key><value>DOM1</value></key>
       <ref bean="DOM1Domain"/>
     </entry>
     <entry>
       <key><value>DOM2</value></key>
       <ref bean="DOM2Domain "/>
     </entry>
     <entry>
       <key><value>DOMN</value></key>
       <ref bean="DOMNDomain "/>
     </entry>
   </map>
 </constructor-arg>
</bean>

Este bean es el mapa que indicará los dominios disponibles para autenticarse. Por cada dominio que se agrega a este mapa es necesario definir el bean de conexión y datos del mismo. Nótese que el valor de la KEY es el LDAPName, es decir, lo que veremos en el login de Thuban y el ref es el ID de Bean de configuración del dominio. Prestar atención y ser prolijos para no cometer errores. Los Beans de definición de dominio se configuran de la siguiente forma:

<bean id="DOM1Domain" class="com.latintech.thuban.services.login.ldap.LdapDefinition">
  <property name="ldapHost" value="ldap://example.org:389"/>
  <property name="ldapBase" value="dc=example,dc=org"/>
  <property name="ldapName" value="EX"/>
  <property name="ldapUserAttributeId" value="sAMAccountName"/>
  <property name="ldapUserAttributeName" value="name"/>
  <property name="ldapUserAttributeDistinguishedName" value="distinguishedName"/>
  <property name="ldapUserAttributeMemberOf" value="memberOf"/>
  <property name="ldapUserAttributeMail" value=""/>
  <property name="ldapUserAttributeArea" value=""/>
  <property name="ldapUserAttributePhone" value=""/>
</bean>

3. Guardar los cambios.

4. Abrir el administrador de servicios (o lo que utilices para iniciar y detener Thuban).

5. Reinicia Thuban.

Una vez haya iniciado Thuban nuevamente, en el login veras un combobox que dentro tendrá los 2 o más dominios que hayas configurado en el paso 2. Para loguearte con un usuario de uno u otro deberás seleccionar el dominio adecuado y poner el id de usuario y contraseña correspondientes.

Con la configuración MultiDominio de Thuban activa, no se podrán utilizar direcciones de correo electrónico como ID de Usuario de Thuban. Esto es porque como el sistema maneja la identificación de usuario en un esquema MultiDominio.

Recuerda que los usuarios no se crearán de forma automática a menos que:

  1. En el archivo context.properties hayas puesto en true las propiedades (Esto es general para todos los dominios, sean uno o varios):

    1. ldap.enableUserSync

    2. ldap.enableGroupSync

  2. Hayas creado grupos en Thuban identificados como grupos de dominio

  3. El usuario con el que intentas loguearte pertenece a al menos 1 grupo de dominio de los que se encuentran configurados en Thuban.

En caso de no querer la creación automática de usuarios, los prodrás crear desde el módulo de administración indicando que son cuentas unificadas de Windows y el Nombre de Dominio para cada uno.

Instrucciones Versiones hasta 7.5.1.1

  1. Dirigirse a la carpeta Context de la instalación de Thuban, ubicar y abrir en un editor de texto el archivo “user-application-context.xml

  2. Agregar los siguientes beans al mismo:

<bean id="domains" class="org.apache.commons.collections.map.LinkedMap">
  <constructor-arg>
    <map>
     <entry>
       <key><value>DOM1</value></key>
       <ref bean="DOM1Domain"/>
     </entry>
     <entry>
       <key><value>DOM2</value></key>
       <ref bean="DOM2Domain "/>
     </entry>
     <entry>
       <key><value>DOMN</value></key>
       <ref bean="DOMNDomain "/>
     </entry>
   </map>
 </constructor-arg>
</bean>

Este bean es el mapa que indicará los dominios disponibles para autenticarse. Por cada dominio que se agrega a este mapa es necesario definir el bean de conexión y datos del mismo. Nótese que el valor de la KEY es el LDAPName, es decir, lo que veremos en el login de Thuban y el ref es el ID de Bean de configuración del dominio. Prestar atención y ser prolijos para no cometer errores. Los Beans de definición de dominio se configuran de la siguiente forma:

<bean id="DOM1Domain" class="com.latintech.thuban.services.login.ldap.LdapDefinition">
  <property name="ldapHost" value="ldap://example.org:389"/>
  <property name="ldapBase" value="dc=example,dc=org"/>
  <property name="ldapName" value="EX"/>
  <property name="ldapUserAttributeId" value="sAMAccountName"/>
  <property name="ldapUserAttributeName" value="name"/>
  <property name="ldapUserAttributeDistinguishedName" value="distinguishedName"/>
  <property name="ldapUserAttributeMemberOf" value="memberOf"/>
  <property name="ldapUserAttributeMail" value=""/>
  <property name="ldapUserAttributeArea" value=""/>
  <property name="ldapUserAttributePhone" value=""/>
</bean>

3. Guardar los cambios.

4. Reiniciar Thuban.

Una vez haya iniciado Thuban nuevamente, en el login verás un combobox que dentro tendrá los 2 o más dominios que hayas configurado en el paso 2. Para loguearte con un usuario de uno u otro deberás seleccionar el dominio adecuado y poner el id de usuario y contraseña correspondientes.

Recuerda que los usuarios no se crearán de forma automática a menos que:

  1. En el archivo context.properties hayas puesto en true las propiedades (Esto es general para todos los dominios, sean uno o varios):

    1. ldap.enableUserSync

    2. ldap.enableGroupSync

  2. Hayas creado grupos en Thuban identificados como grupos de dominio

  3. El usuario con el que intentas loguearte pertenece a al menos 1 grupo de dominio de los que se encuentran configurados en Thuban.

En caso de no querer la creación automática de usuarios, los prodrás crear desde el módulo de administración indicando que son cuentas unificadas de Windows y el Nombre de Dominio para cada uno.

Ejemplos de Configuración Completos

7.5.2 en Adelante

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
	

	<bean id="thubanAuthenticationProvider" class="com.latintech.thuban.acegi.provider.ThubanMultiDomainAuthenticationProvider">
		<property name="userDetailsService" ref="userDetailsService"/>
		<property name="loginService" ref="loginService"/>
	</bean>

	<bean id="userDetailsService" class="com.latintech.thuban.acegi.userdetails.ThubanMultiDomainUserDetailsService">
		<property name="adminService" ref="adminService"/>
		<property name="securityService" ref="securityService"/>
	</bean>

	<bean id="domains" class="org.apache.commons.collections.map.LinkedMap">
  		<constructor-arg>
    		<map>
     			<entry>
       				<key><value>CORP1</value></key>
       				<ref bean="corp1Domain"/>
     			</entry>
     			<entry>
       				<key><value>Corp2</value></key>
       				<ref bean="corp2Domain "/>
     			</entry>
   			</map>
 		</constructor-arg>
	</bean>

	<bean id="corp1Domain" class="com.latintech.thuban.services.login.ldap.LdapDefinition">
  		<property name="ldapHost" value="ldap://corp1.example.org:389"/>
  		<property name="ldapBase" value="dc=corp1,dc=example,dc=org"/>
  		<property name="ldapName" value="Corp1"/>
  		<property name="ldapUserAttributeId" value="sAMAccountName"/>
  		<property name="ldapUserAttributeName" value="name"/>
  		<property name="ldapUserAttributeDistinguishedName" value="distinguishedName"/>
  		<property name="ldapUserAttributeMemberOf" value="memberOf"/>
  		<property name="ldapUserAttributeMail" value="mail"/>
  		<property name="ldapUserAttributeArea" value="dept"/>
  		<property name="ldapUserAttributePhone" value="phone"/>
	</bean>

	<bean id="corp2Domain" class="com.latintech.thuban.services.login.ldap.LdapDefinition">
  		<property name="ldapHost" value="ldap://corp2.example.org:389"/>
  		<property name="ldapBase" value="dc=corp2,dc=example,dc=org"/>
  		<property name="ldapName" value="Corp2"/>
  		<property name="ldapUserAttributeId" value="sAMAccountName"/>
  		<property name="ldapUserAttributeName" value="name"/>
  		<property name="ldapUserAttributeDistinguishedName" value="distinguishedName"/>
  		<property name="ldapUserAttributeMemberOf" value="memberOf"/>
  		<property name="ldapUserAttributeMail" value="mail"/>
  		<property name="ldapUserAttributeArea" value="dept"/>
  		<property name="ldapUserAttributePhone" value="phone"/>
	</bean>
</beans>

7.5.1.1 y anteriores

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

	<bean id="domains" class="org.apache.commons.collections.map.LinkedMap">
  		<constructor-arg>
    		<map>
     			<entry>
       				<key><value>CORP1</value></key>
       				<ref bean="corp1Domain"/>
     			</entry>
     			<entry>
       				<key><value>Corp2</value></key>
       				<ref bean="corp2Domain "/>
     			</entry>
   			</map>
 		</constructor-arg>
	</bean>

	<bean id="corp1Domain" class="com.latintech.thuban.services.login.ldap.LdapDefinition">
  		<property name="ldapHost" value="ldap://corp1.example.org:389"/>
  		<property name="ldapBase" value="dc=corp1,dc=example,dc=org"/>
  		<property name="ldapName" value="Corp1"/>
  		<property name="ldapUserAttributeId" value="sAMAccountName"/>
  		<property name="ldapUserAttributeName" value="name"/>
  		<property name="ldapUserAttributeDistinguishedName" value="distinguishedName"/>
  		<property name="ldapUserAttributeMemberOf" value="memberOf"/>
  		<property name="ldapUserAttributeMail" value="mail"/>
  		<property name="ldapUserAttributeArea" value="dept"/>
  		<property name="ldapUserAttributePhone" value="phone"/>
	</bean>

	<bean id="corp2Domain" class="com.latintech.thuban.services.login.ldap.LdapDefinition">
  		<property name="ldapHost" value="ldap://corp2.example.org:389"/>
  		<property name="ldapBase" value="dc=corp2,dc=example,dc=org"/>
  		<property name="ldapName" value="Corp2"/>
  		<property name="ldapUserAttributeId" value="sAMAccountName"/>
  		<property name="ldapUserAttributeName" value="name"/>
  		<property name="ldapUserAttributeDistinguishedName" value="distinguishedName"/>
  		<property name="ldapUserAttributeMemberOf" value="memberOf"/>
  		<property name="ldapUserAttributeMail" value="mail"/>
  		<property name="ldapUserAttributeArea" value="dept"/>
  		<property name="ldapUserAttributePhone" value="phone"/>
	</bean>
</beans>

Artículos Relacionados

  • No labels