Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2486 connectés 

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Réseaux

  Single Sign-On sur Apache avec Windows 2000 Server

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Single Sign-On sur Apache avec Windows 2000 Server

n°32279
LiLoRoX
Posté le 04-02-2008 à 15:06:19  profilanswer
 

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  :cry:  
 
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:

  • Mon client ayant ouvert une session avec l'utilisateur toto sur Active Directory sous Windows XP.
  • Mon serveur web www-serv (le FQDN donne quelque chose comme ça : www-serv.domaine.com) sous Fedora Core 6 avec Apache 2.2.6, Kerberos client 1.5-23 et le module mod_auth_kerb 5.3
  • Mon serveur Active Directory ad-serv contrôleur du domaine domaine.com


Après avoir suivi moult tutos sur le web, je me retrouve avec une configuration comme suit :

  • le client possède IE7 avec l'option "Activer l'authentification Windows intégrée" et j'ai ajouté le serveur web dans la zone intranet.
  • un utilisateur www-user a été créé sur ad-serv pour le serveur web, la keytab pour le service HTTP est installée et l'authentification avec la commande

    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 :

  • Si je configure apache avec ces options :

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.

  • Par contre si j'inverse Negotiate et K5Passwd pour ne plus avoir à taper de mot de passe, ça ne marche plus.

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 cité 1 fois
Message édité par LiLoRoX le 04-02-2008 à 15:13:40
mood
Publicité
Posté le 04-02-2008 à 15:06:19  profilanswer
 

n°32332
LiLoRoX
Posté le 05-02-2008 à 08:52:20  profilanswer
 

:hello:  
Personne n'a d'idée ?  :sweat:  
 
Peut-être le sujet est-il placé dans le mauvais forum ?

n°32432
LiLoRoX
Posté le 06-02-2008 à 14:00:51  profilanswer
 

Toujours pas d'avis de pro de Windows 2000 Server et Kerberos 5 ? :(

n°32570
LiLoRoX
Posté le 08-02-2008 à 14:10:04  profilanswer
 

LiLoRoX a écrit :


[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)




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 !


Message édité par LiLoRoX le 08-02-2008 à 14:10:30
n°51182
rodolphedj
Posté le 21-03-2009 à 13:02:51  profilanswer
 

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 ?
 
 :hello:


---------------
Feed-Back
n°51184
LiLoRoX
Posté le 21-03-2009 à 14:04:55  profilanswer
 

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é :)

n°51187
rodolphedj
Posté le 21-03-2009 à 15:06:19  profilanswer
 

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


Message édité par rodolphedj le 21-03-2009 à 15:13:11

---------------
Feed-Back
n°51188
LiLoRoX
Posté le 21-03-2009 à 15:31:46  profilanswer
 

Merci pour le lien, je connaissais déjà mais je ferai un petit arrangement avec ce que j'ai sur le sujet.

n°56888
vrivoire
Posté le 08-08-2009 à 11:05:20  profilanswer
 

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


Message édité par vrivoire le 08-08-2009 à 11:09:33
n°56889
LiLoRoX
Posté le 08-08-2009 à 12:48:18  profilanswer
 

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 !

mood
Publicité
Posté le 08-08-2009 à 12:48:18  profilanswer
 

n°56890
vrivoire
Posté le 08-08-2009 à 13:19:52  profilanswer
 

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 ...


Message édité par vrivoire le 08-08-2009 à 13:21:36
n°56911
LiLoRoX
Posté le 09-08-2009 à 14:35:19  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Réseaux

  Single Sign-On sur Apache avec Windows 2000 Server

 

Sujets relatifs
Pb de dépassement de quota sous 2000 serverProblème d'administration à distance Win Server 2003
Pare-feu windows server 2003, bloquer un réseau entierConnexion réseau local instable sous windows 2000
Désactiver le pare feu Windows en ligne de commandesImpossible d'acceder à une machine avec \\adresse_ip !
[RESOLU] Affichage des .png en mode terminal server 
Plus de sujets relatifs à : Single Sign-On sur Apache avec Windows 2000 Server


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR