Bonjour,J'essaye de configurer Alfresco de manière à faire fonctionner le SSO en utilisant Kerberos.Voici l'environnement sur lequel je travaille :- Mon poste personnel qui se trouve dans le domaine domaine.fr sert de poste client dans le cadre de mon test. Il tourne sous Windows 7 Pro et les tests sont réalisés sous IE8.- Le serveur Alfresco se trouve sur une VM sous CentOS 5. Il s'agit d'Alfresco 3.3g qui tourne sous Tomcat 6.- Enfin, j'ai créé un Active Directory sous une VM Windows Server 2008 R2. Cette VM est le contrôleur du domaine domaine.local (nom de domaine netbios = DOMAINE0) que j'ai créé spécialement pour l'occasion.Je n'ai pas de DNS, donc je travaille avec les IP de mes serveurs :- Poste client : xx.xx.xx.35- Serveur Alf : xx.xx.xx.60- Serveur AD : xx.xx.xx.28Dans un premier temps, j'ai testé mon environnement en configurant le passthru pour faire du SSO => Aucun problème particulier.Lorsque j'accède à l'appli, j'ai une fenêtre de connexion Windows qui s'affiche. Je saisis le login/mot de passe d'un compte de mon AD en indiquant le domaine DOMAINE0 et je me connecte automatiquement à Alfresco (sans passer par la page de login).Après ce premier test de contrôle, j'ai suivi les consignes sur la page du wiki relative à Kerberos. Dans mon cas, CIFS ne sera pas activé, je ne me suis donc intéressé qu'à la partie HTTP.- Création du compte alfrescohttp dans l'AD (activation des options "Le mot de passe n'expire jamais", "Utilisation des types de chiffrement DES via Kerberos" et "La pré-authentification Kerberos n'est pas nécessaire").- Génération de la keytab sur le serveur AD avec les paramètres suivants : => HTTP/xx.xx.xx.60@DOMAINE.LOCAL => DOMAINE0\alfrescohttp Cela m'a créé un SPN : setspn -l alfrescohttp Noms ServicePrincipalName inscrits pour CN=Alfresco HTTP,OU=users,OU=ged,OU=esi, DC=domaine,DC=local: HTTP/xx.xx.xx.60- Sur mon serveur Alfresco, j'ai ajouté un répertoire kerberos dans le répertoire de Tomcat dans lequel j'ai placé les fichiers suivants : => le fichier keytab généré précédemment ; => krb5.conf
[libdefaults]
default_realm = DOMAINE.LOCAL
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac
[realms]
EUROGICIEL.LOCAL = {
kdc = xx.xx.xx.28
admin_server=xx.xx.xx.28
}
[domain_realm]
.domaine.local = DOMAINE.LOCAL
=> java.login.config
Alfresco {
com.sun.security.auth.module.Krb5LoginModule sufficient;
};
AlfrescoHTTP {
com.sun.security.auth.module.Krb5LoginModule required
debug=true
storeKey=true
useKeyTab=true
keyTab="/usr/share/tomcat6/kerberos/alfrescohttp.keytab"
principal="HTTP/xx.xx.xx.60";
};
com.sun.net.ssl.client {
com.sun.security.auth.module.Krb5LoginModule sufficient;
};
other {
com.sun.security.auth.module.Krb5LoginModule sufficient;
};
- Toujours sur le serveur Alfresco, j'ai modifié le paramètre JAVA_OPTS de manière à obtenir :
JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=256m -Djava.security.auth.login.config=/usr/share/tomcat6/kerberos/java.login.config -Djava.security.krb5.conf=/usr/share/tomcat6/kerberos/krb5.conf"
- J'ai modifié le fichier alfresco-global.properties pour obtenir :
…
authentication.chain=kerberos1:kerberos
kerberos.authentication.realm=DOMAINE.LOCAL
kerberos.authentication.sso.enabled=true
kerberos.authentication.authenticateCIFS=false
kerberos.authentication.user.configEntryName=Alfresco
kerberos.authentication.http.configEntryName=AlfrescoHTTP
kerberos.authentication.http.password=secret
kerberos.authentication.defaultAdministratorUserNames=mlagneaux
kerberos.authentication.http.kerberosDebug=true
…
- J'ai également activé les logs relatives à kerberos dans log4j.properties.Au démarrage de Tomcat, j'obtiens les traces suivantes qui indiquent que tout se passe bien :
17:15:12,932 User:System DEBUG [webdav.auth.KerberosAuthenticationFilter] HTTP Kerberos login successful
17:15:12,933 User:System DEBUG [webdav.auth.KerberosAuthenticationFilter] Logged on using principal HTTP/xx.xx.xx.60@DOMAINE.LOCAL
Par contre, lorsque j'essaye de me connecter avec un utilisateur de mon AD : j'obtiens la fenêtre de connexion Windows où je saisis le login et mot de passe en précisant le domaine DOMAINE0 mais la connexion ne se fait pas. Au bout de quelques essais, j'arrive sur une page blanche.Au niveau du fichier de log, j'obtiens les messages suivants :
17:24:02,121 DEBUG [app.servlet.KerberosAuthenticationFilter] New Kerberos auth request from xx.xx.xx.35 (xx.xx.xx.35:62790)
17:24:02,130 DEBUG [app.servlet.KerberosAuthenticationFilter] Client sent an NTLMSSP security blob
Y a-t-il une conf particulière à faire au niveau du poste client ? (Dans IE, ce site est bien dans la zone Intranet et l'authentification automatique est activée pour les sites de l'intranet).Le fait d'utiliser l'IP des machines peut-il poser problème ?Y a-t-il d'autres logs à activer qui pourraient m'aider à voir d'où vient le problème ?Y a-t-il d'autres infos (notamment au niveau du serveur AD) qui pourraient être utiles ?Merci d'avance pour votre aide.