Single Sign-On sur Apache avec Windows 2000 Server - Réseaux - Systèmes & Réseaux Pro
Marsh Posté le 05-02-2008 à 08:52:20
Personne n'a d'idée ?
Peut-être le sujet est-il placé dans le mauvais forum ?
Marsh Posté le 06-02-2008 à 14:00:51
Toujours pas d'avis de pro de Windows 2000 Server et Kerberos 5 ?
Marsh Posté le 08-02-2008 à 14:10:04
LiLoRoX a écrit :
|
Bon du coup j'ai trouvé, pour ceux que ça interesse d'où vient le problème
En fait dans les logs d'Apache, on voit ça:
Acquiring creds for HTTP@www-serv.domaine.com |
Et c'est là qu'est le problème. Il faut que le serveur ait une entrée dans la table DNS du serveur Active Directory et que l'utilisateur créé pour le serveur porte le nom FQDN du serveur (i.e l'utilisateur doit s'appeler www-serv.domaine.com ici).
Voilà. J'espère que ça servira au moins un jour !
Marsh Posté le 21-03-2009 à 13:02:51
Bonjour LiLoRoX,
Merci pour ta réponse et ce sujet.
ça risque de me servir d'ici quelques jours. je suis dans la même situation que toi à l'époque, sauf que maintenant ça sera avec Windows Server 2008.
Par contre, question protocole. Tu parles de l'ancien protocole d'authentification NTLM.
As tu réussi à le supprimer et à utiliser uniquement Kerberos ?
Marsh Posté le 21-03-2009 à 14:04:55
Normalement avec 2008, ça doit fonctionner tout pareil.
Pour ce qui est de NTLM, le fait d'utiliser ou non NTLM est lié au client : si le client décide qu'il va répondre en NTLM, c'est que les réglages DNS et/ou Kerberos sur le serveur ne sont pas corrects.
N'hésite pas à reposter (je suis le sujet par notification mail) pour me faire part de ton retour d'expérience sur le sujet !
Je vais essayer de mon côté de rassembler mon expérience dans un document pour, déjà, pouvoir moi-même m'y retrouver et ensuite pour aider la communauté
Marsh Posté le 21-03-2009 à 15:06:19
Je te tiens au courant (si ma prochaine mission en clientèle est sur ce sujet).
mais ça reste fun ce projet !
a+
pour info : HTTP-Based Cross-Platform Authentication via the Negotiate Protocol
Marsh Posté le 21-03-2009 à 15:31:46
Merci pour le lien, je connaissais déjà mais je ferai un petit arrangement avec ce que j'ai sur le sujet.
Marsh Posté le 08-08-2009 à 11:05:20
Bonjour LiLoRoX,
j'ai exactement le même problème que celui que tu décrits. J'essaie de mettre en place du SSO en utilisant Kerberos sur un site Apache 2 (sur Fedora 8), mon Active Directory tourne sur Windows Server 2003.
J'obtiens les mêmes messages d'erreur :
[Sat Aug 08 10:38:30 2009] [debug] src/mod_auth_kerb.c(1405): [client 192.168.0.23] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Sat Aug 08 10:38:37 2009] [debug] src/mod_auth_kerb.c(1405): [client 192.168.0.23] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Sat Aug 08 10:38:37 2009] [debug] src/mod_auth_kerb.c(1148): [client 192.168.0.23] Acquiring creds for HTTP@nagios.logfi.fr
[Sat Aug 08 10:38:37 2009] [debug] src/mod_auth_kerb.c(1240): [client 192.168.0.23] Verifying client data using KRB5 GSS-API
[Sat Aug 08 10:38:37 2009] [debug] src/mod_auth_kerb.c(1256): [client 192.168.0.23] Verification returned code 589824
[Sat Aug 08 10:38:37 2009] [debug] src/mod_auth_kerb.c(1283): [client 192.168.0.23] Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration.
[Sat Aug 08 10:38:37 2009] [error] [client 192.168.0.23] gss_accept_sec_context() failed: Invalid token was supplied (No error)
Par contre, je ne comprends pas ton msg de résolution :
" Il faut que le serveur ait une entrée dans la table DNS du serveur Active Directory et que l'utilisateur créé pour le serveur porte le nom FQDN du serveur (i.e l'utilisateur doit s'appeler www-serv.domaine.com ici). "
J'ai bien un enregistrement DNS pour mon serveur Linux, celui-ci porte bien le même nom que le compte que j'ai créé dans l'AD.
Merci d'avance pour ton aide,
Vincent
Marsh Posté le 08-08-2009 à 12:48:18
Salut !
Ouais tu as raison mon message de réponse n'était pas très clair.
Le problème du HTTP@nagios.logfi.fr vient du reverse DNS inexistant.
Le problème avec Kerberos c'est qu'il faut que ta machine sous linux ait une entrée DNS A et une entre DNS PTR (reverse DNS) parce que les deux sont vérifié par le module mod_auth_kerb mais aussi par les navigateurs clients.
Si le reverse DNS existe bien, il peut s'agir d'un fichier host mal configuré et là je te conseille de pas te prendre la tête et d'ajouter l'option_qui_va_bien dans la conf d'apache : KrbServiceName HTTP/nagios.logfi.fr@LOGFI.FR
Vérifie aussi qu'Apache peut lire ta keytab !
Marsh Posté le 08-08-2009 à 13:19:52
Pour l'entrée A et le pointeur (PTR), il s'agit bien de créer un enregistrement nagios (dans mon cas) ?
Autre question, sais-tu s'il y a moyen d'activer des logs Kerberos ? Autrement que de fixer à debug les logs d'erreur d'Apache ?
Pour le keytab, j'ai fait attention (chown et chmod). Vu le log d'Apache, je pense que le fichier doit être lu ...
Marsh Posté le 09-08-2009 à 14:35:19
Je suppose que ton domaine est logfi.fr donc oui l'entrée est bien nagios.
Je ne crois pas qu'il y ait d'autre moyen d'avoir des logs détaillés que de passer Apache en debug.
Marsh Posté le 04-02-2008 à 15:06:19
Salut,
Voilà j'ai passé ma dernière semaine à fouiller dans tous les recoins d'internet pour trouver une réponse à mon problème et jusque là pas de chance, beaucoup d'utilisateurs semblent avoir les même problèmes sans jamais trouver de solution
J'essaie en ce moment d'authentifier un utilisateur d'un domaine Active Directory (sous Windows 2000 Server) sur un site en utilisant kerberos et donc en l'autorisant à ce connecter à partir du moment où celui-ci est authentifié sur AD. Le tout évidemment doit se faire sans retaper de mot de passe...
J'ai donc ceci:
Après avoir suivi moult tutos sur le web, je me retrouve avec une configuration comme suit :
kinit -k HTTP/www-user@DOMAINE.COM
(depuis le serveur web) me donne un ticket sans problème (kerberos est bien configuré donc)
Mon problème du coup est le suivant :
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate Off
KrbMethodK5Passwd On
KrbAuthRealms DOMAINE.COM
Krb5KeyTab /etc/krb5.keytab
KrbServiceName HTTP
require valid-user
Le client se voit demander son login et mot de passe Active Directory et tout fonctionne.
En capturant les paquets sur le serveur web, je vois cet échange :
(1) Client --------------- GET --------------> serveur web
(2) <--- 401 Authorization Required ---
(3) ----- GET + NTLMSSP_NEGOTIATE ---->
(4) <--- 401 Authorization Required ---
(1) est un GET normal, pas d'en-tête WWW-Authenticate.
(2) possède l'en-tête "WWW-Authenticate: Negotiate"
(3) est une requète GET + l'en-tête Negotiate est une clé en base64 mais de type NTLMSSP
(4) est une réponse 401 sans en-tête Negotiate fermant la connexion.
Dans le log d'apache, j'ai les erreurs suivantes :
[debug] src/mod_auth_kerb.c(1405): [client A.B.C.D] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[debug] src/mod_auth_kerb.c(1405): [client A.B.C.D] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[debug] src/mod_auth_kerb.c(1148): [client A.B.C.D] Acquiring creds for HTTP@www-serv.domaine.com
[debug] src/mod_auth_kerb.c(1240): [client A.B.C.D] Verifying client data using KRB5 GSS-API
[debug] src/mod_auth_kerb.c(1256): [client A.B.C.D] Verification returned code 589824
[debug] src/mod_auth_kerb.c(1283): [client A.B.C.D] Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration.
[error] [client A.B.C.D] gss_accept_sec_context() failed: Invalid token was supplied (No error)
Du coup ça marche pas.
Apparemment IE (et Firefox pareil) transmet une requête d'authentification en NTLM alors que d'après ce que je lis partout sur internet, le comportement par défaut est d'utiliser l'authentification Kerberos. En plus de ça moi du NTLM, j'en veux pas
Alors quelqu'un a-t'il une idée pour m'aider ?
J'ai essayé d'être super clair mais si vous avez besoin d'autres indices, n'hésitez pas !
Merci d'avance !
Message édité par LiLoRoX le 04-02-2008 à 15:13:40