Autenticación con Active Directory

cancel
Showing results for 
Search instead for 
Did you mean: 
baldomero
Member II

Autenticación con Active Directory

Hola a todos,
he instalado Alfresco 2.1 Community sobre una distribución Debian, estoy teniendo problemas para conectarlo con mi Active Directory de Windows. Al principio pensaba que tal vez no se podía conectar pero al final lo he logrado a medias. He tocado el fichero de configuración:

ldap-authentication-context.xml

Y me queda así:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
   
    <bean name="authenticationDao" class="org.alfresco.repo.security.authentication.DefaultMutableAuthenticationDao" >
        <property name="allowDeleteUser">
            <value>false</value>
        </property>
    </bean>   
  
    <bean id="authenticationComponent" class="org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl">
        <property name="LDAPInitialDirContextFactory">
            <ref bean="ldapInitialDirContextFactory"/>
        </property>
        <property name="userNameFormat">
            <value>CN=%s,CN=Users,DC=MI_DOMINIO,DC=com</value>
        </property>
    </bean>
   
    <bean id="ldapInitialDirContextFactory" class="org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl">
        <property name="initialDirContextEnvironment">
            <map>
                <entry key="java.naming.factory.initial">
                    <value>com.sun.jndi.ldap.LdapCtxFactory</value>
                </entry>
               
                <entry key="java.naming.provider.url">
                    <value>ldap://MI_IP:389</value>
                </entry>
               
                <entry key="java.naming.security.authentication">
              <value>simple</value>
                </entry>
               
            </map>
        </property>
    </bean>

</beans>

El problema que tengo es que mi Active Directory está organizado de la siguiente forma, en un primer nivel tengo:

- CN=Users,DC=MI_DOMINIO,DC=com

En un segundo nivel tengo (justo debajo del primer nivel)
- CN=Nombre1 Apellidos1
- CN=Nombre2 Apellidos2
- …..

Por lo tanto la búsqueda base DN:

        <property name="userNameFormat">
            <value>CN=%s,CN=Users,DC=MI_DOMINIO,DC=com</value>
        </property>

Me permite autenticarme a Alfresco utilizando como login: Nombre y Apellidos del usuario, y como clave: la clave.

No consigo utilizar como login el atributo sAMAccountName que hay dentro de cada registro de cada usuario. En otras aplicaciones puedo utilizar algún tipo de filtro adicional como:

(&(objectclass=*)(sAMAccountName=MI_LOGIN))

En Alfresco no cómo modificar la búsqueda para que use el atributo sAMAccountName. ¿Alguien puede ayudarme?

Muchas gracias!!!

:wink:
20 Replies
venzia
Senior Member

Re: Autenticación con Active Directory

si no me equivoco es tan facil como cambiar :
        <property name="userNameFormat">
            <value>CN=%s,CN=Users,DC=MI_DOMINIO,DC=com</value>
        </property>
por

       <property name="userNameFormat">
               <value>samaccountname=%s</value>
       </property>
Puedes verlo en http://wiki.alfresco.com/wiki/Enterprise_Security_and_Authentication_Configuration#Active_Directory_...
Espero que te sirva.
Saludos
baldomero
Member II

Re: Autenticación con Active Directory

Muchas gracias Javier por tu ayuda, pero no me ha funcionado, he probado distintas alternativas pero siempre que devuelve que el usuario es erróneo:

    <property name="userNameFormat">
            <value>samaccountname=%s</value>
    </property>

    <property name="userNameFormat">
            <value>sAMAccountName=%s</value>
    </property>

    <property name="userNameFormat">
            <value>sAMAccountName=%s,CN=Users,DC=MI_DOMINIO,DC=com</value>
    </property>

Pero al final nada de nada, he visto el enlace que me pasabas y efectivamente ahí indica lo que tu me dices. Seguiré probando.

Gracias!!  :wink:
venzia
Senior Member

Re: Autenticación con Active Directory

Hola baldomero, échale un vistazo a este post que habla de la solución a este tema :
http://forums.alfresco.com/en/viewtopic.php?t=3156
Espero que te sirva.
Saludos
baldomero
Member II

Re: Autenticación con Active Directory

Hola Javier,
tampoco me ha funcionado la solución del post, he creado un usuario en el Active Directory activándole el atributo "encriptación reversible". He probado el ejemplo poniendo el tipo de autenticación DIGEST-MD5, pero nada de nada…

Sin embargo he encontrado la solución, he seguido buscando y probando, en el siguiente enlace

http://forums.alfresco.com/en/viewtopic.php?f=9&t=13357&p=49206&hilit=active+directory

me ha dado la clave.

En definitiva he incluido en el parámetro userNameFormat el dominio, y funciona!!

Incluyo la configuración definitiva para el que le pueda servir:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

    <bean name="authenticationDao" class="org.alfresco.repo.security.authentication.DefaultMutableAuthenticationDao" >
        <property name="allowDeleteUser">
            <value>false</value>
        </property>
    </bean>

    <bean id="authenticationComponent" class="org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl">
        <property name="LDAPInitialDirContextFactory">
            <ref bean="ldapInitialDirContextFactory"/>
        </property>
        <property name="userNameFormat">
           <value>%s@MI_DOMINIO</value>
        </property>
    </bean>

    <bean id="ldapInitialDirContextFactory" class="org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl">
        <property name="initialDirContextEnvironment">
            <map>
                <entry key="java.naming.factory.initial">
                    <value>com.sun.jndi.ldap.LdapCtxFactory</value>
                </entry>

                <entry key="java.naming.provider.url">
                    <value>ldap://IP_MI_SERVIDOR_ACTIVE_DIRECTORY:389</value>
                </entry>

                <entry key="java.naming.security.authentication">
                  <value>simple</value>
                </entry>
            </map>
        </property>
    </bean>

</beans>

Gracias!!
venzia
Senior Member

Re: Autenticación con Active Directory

Perfecto !! … ya tomamos nota los demás … :wink:
Gracias por compartir la solución. Si pudiera te daría un punto  :lol:!!
Saludos
ingcarloshud
Member II

Re: Autenticación con Active Directory

Alguien me podria orientar, en la sincronización??? Resulta q necesito que al ingreso de cada usuario se capturen los campos automaticamente (nombres, apellidos, correo empresarial, etc…), por lo q tengo entendido segun el wiki toca configurar los triggers en el archivo scheduled-jobs-context.xml pero al hacerlo tal cual, la aplicacion se daña completamente.  Alguien puede echarme una con este problemita.
Saludos!!!
ajv
Member II

Re: Autenticación con Active Directory

Hola ingcarloshud,

Sería más fácil ayudarte si nos indicas los cambios que has realizado para intentar conseguir la sincronización, así como los errores que recibes en el fichero alfresco.log.
Desde la versión 2.1 se cambió un poco la forma de configurar el LDAP, facilitándolo mucho, ya que prácticamente consiste en modificar un par de ficheros de propiedades (ldap-authentication.properties y ldap-synchronisation.properties).
Hasta luego!
sakarina
Member II

Re: Autenticación con Active Directory

Buenas,

Tal como ha explicado Baldomero he conseguido autenticar con Active Directory en Alfresco. Pero cuando he intentado utilizar el usuario "admin" que viene por defecto en la aplicación como Administrador no me reconoce la contraseña, ya que éste usuario no pertenece a mi Active Directory. ¿Cómo puedo asignar un administrador? ¿Es posible que el administrador no pertenezca al Active Directory?

Estoy utilizando la versión de Alfresco 2.9 Community bajo un windows 2003 server.

Muchas gracias de antemano.
pachacute
Member II

Re: Autenticación con Active Directory

Por lo que tengo entendido es el administrador que queda luego de la sincronizacion es el administrador del active directory.
No estoy muy seguro ya que en mi trabajo no me facilitaron el user ni pass del active directory, pensaron que lo podria modificar.