AnsweredAssumed Answered

Alfresco LDAP Kerberos

Question asked by jmruiza on Oct 23, 2008
Latest reply on Apr 7, 2010 by sutone
Hola a todos.
Llevo muy poco tiempo con Alfresco y necesito integrar LDAP con Alfresco.
La versión que se ha elegido es la Labs 3b (Full Setup) que incluye Tomcat, JDK, …
Alfresco está montado sobre un equipo con Windows XP (ServidorALF) y el Active Directory se encuentra en otra máquina con Windows 2003 (ServidorAD). Ambos en el mismo dominio ("XXX.Local")
Llevo varios días documentándome sobre el tema y probando, pero no he encontrado la forma de que funcione.
Conseguí instalar correctamente Alfresco + CIFS, pero al intentar la integración con LDAP (siguiendo los pasos que se indican en: http://wiki.alfresco.com/wiki/Configuring_the_CIFS_and_web_servers_for_Kerberos/AD_integration ) nada de nada.
La verdad es que no se qué he podido haber hecho mal.
Basándome en las indicaciones del post anterior mis pasos fueron:
Primero debo decir que todas las operaciones que se realizaron en el equipo con AD se hicieron mediante conexión a escritorio remoto (no se si esto puede ser una fuente de problemas, como pasa por ejemplo al instalar SQL SERVER 2005, que ha de hacerse directamente sobre la propia máquina)
1) Crear 2 cuentas de usuario en ServidorAD. "Alfresco CIFS" y "Alfresco HTTP" tal y como indica en el documento.
2) Crear las key tables para los 2 usuarios creados en el paso anterior con la herramienta ktpass:
ktpass -princ cifs/servidorAlf.xxx.local@XXX.LOCAL> -pass ClaveUsrCifs -mapuser xxx.local\alfrescocifs
-crypto DES-CBC-MD5 -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -out c:\temp\alfrescocifs.keytab
y
ktpass -princ HTTP/servidorAlf.xxx.local.@XXX.LOCAL -pass ClaveUsrHttp -mapuser xxx.local\alfrescohttp
-crypto DES-CBC-MD5 -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -out c:\temp\alfrescohttp.keytab
3) Crear los SPN para los 2 usuarios creados usando la herramienta setspn:
setspn -a cifs/servidorAlf alfrescocifs
setspn -a cifs/servidorAlf.xxx.local alfrescocifs
y
setspn -a http/servidorAlf alfrescohttp
setspn -a http/servidorAlf.xxx.local alfrescohttp
4) Copiar los key tables a ServidorAlf (Realmente los moví: los borré de ServidorAD).
5) Crear un fichero llamado krb5.ini de la siguiente forma:
[libdefaults]
default_realm = XXX.LOCAL

[realms]
XXX.LOCAL = {
  kdc = servidorAD.XXX.LOCAL
  admin_server = servidorAD.XXX.LOCAL
  default_domain = XXX.LOCAL
}

[domain_realm]
xxx.local = XXX.LOCAL
.xxx.local = XXX.LOCAL
Este fichero lo almaceno en ServidorAD (dentro de C:\WINDOWS. Tambien me cree una carpeta "C:\WINNT" y lo copié aquí también, por si fallaba por no coincidir con la ruta del documento, pero nada)
6) Crear un fichero en java.login.config  llamado java.login.config (En ServidorAD) de esta forma:
AlfrescoCIFS {
   com.sun.security.auth.module.Krb5LoginModule required
   storeKey=true
   useKeyTab=true
   keyTab="C:/etc/alfrescocifs.keytab"
   principal="cifs/servidorAlf.xxx.local";
};

AlfrescoHTTP {
   com.sun.security.auth.module.Krb5LoginModule required
   storeKey=true
   useKeyTab=true
   keyTab="C:/etc/alfrescohttp.keytab"
   principal="HTTP/servidorAlf.xxx.local>";
};

7) Añadir en el fichero de configuración de java (java.security) la siguiente línea (en ServidorAD)
login.config.url.1=file:${java.home}/lib/security/java.login.config
8) configurar el servidor Cifs para kerberos (file-servers.xml, en ServidorAlf)
     <authenticator type="enterprise">
      <KDC>ServidorAD.XXX.LOCAL</KDC>
      <Realm>XXX.LOCAL</Realm>
      <Password>ClaveUsrCifs</Password>
      <Principal>cifs/SeridorAlf.xxx.local@XXX.LOCAL</Principal>
     </authenticator>
9) Configurar el servidor web para kerberos (web.xml, en ServidorAlf)
   <filter>
     <filter-name>Authentication Filter</filter-name>
     <filter-class>org.alfresco.web.app.servlet.KerberosAuthenticationFilter</filter-class>
     <init-param>
       <param-name>KDC</param-name>
       <param-value>ServidorAD.XXX.LOCAL</param-value>
     </init-param>
     <init-param>
       <param-name>Realm</param-name>
       <param-value>XXX.LOCAL</param-value>
     </init-param>
     <init-param>
       <param-name>Password</param-name>
       <param-value>ClaveUsrHttp</param-value>
     </init-param>
     <init-param>
       <param-name>Principal</param-name>
       <param-value>HTTP/ServidorAlf.xxx.local@XXX.LOCAL</param-value>
     </init-param>
  </filter>
10) Configurar el servidor WebDAV  para kerberos (web.xml, en ServidorAlf)
  <filter>
     <filter-name>WebDAV Authentication Filter</filter-name>
     <filter-class>org.alfresco.repo.webdav.auth.KerberosAuthenticationFilter</filter-class>
     <init-param>
       <param-name>KDC</param-name>
       <param-value>ServidorAD.XXX.LOCAL</param-value>
     </init-param>
     <init-param>
       <param-name>Realm</param-name>
       <param-value>XXX.LOCAL</param-value>
     </init-param>
     <init-param>
       <param-name>Password</param-name>
       <param-value>ClaveUsrHttp</param-value>
     </init-param>
     <init-param>
       <param-name>Principal</param-name>
       <param-value>HTTP/ServidorAlf.xxx.local@XXX.LOCAL</param-value>
     </init-param>
  </filter>

Espero que alguien pueda ayudarme con esto.

Muchas gracias.

Outcomes