Exemple d'utilisation de AuthType résumé de l'authentification d'un utilisateur une fois dans les sous-domaines?
J'ai un domaine qui sera accessible par un petit groupe privé de personnes. Je tiens donc à contrôler l'accès via l'authentification.
Le domaine dispose d'une collection d'applications installées qui ont chacune leur propre sous-domaine. Par exemple: domain.com, app1.domain.com, app2.domain.com, app3.domain.com
J'aimerais avoir une solution d'authentification unique, de sorte qu'ils n'ont pas à s'authentifier pour chaque application. Aussi, les applications sont écrits dans différents langages (PHP, Python et Perl) afin d'authentifier les utilisateurs par le biais d'un module Apache est idéal.
Je suis nouveau à l'authentification digest, mais il semble comme une bonne solution. J'ai utilisé htdigest
pour créer mes utilisateurs. J'ai configuré mon domaine et sous-domaines (Voir ci-dessous).
Si je vais au domaine ou à l'un des sous-domaines, il vous demandera un nom d'utilisateur et mot de passe. Si je entrer un nom d'utilisateur correct et le mot de passe, il va authentifier moi et le chargement de la page. Cependant, si je vais à un autre sous-domaine, il va me demander de saisir un nom d'utilisateur et le mot de passe de nouveau. Si je entrer le nom d'utilisateur et mot de passe, il va fonctionner.
De sorte que le fichier de mot de passe est OK, et l'authentification est OK, mais le problème semble résider dans la configuration de la AuthDigestDomain
.
J'ai cherché partout sur le net pour trouver un exemple d'utilisation de l'authentification Digest sur plusieurs domaines, mais je ne trouve pas d'exemple précis qui résout mon problème.
J'espère que quelqu'un ici peut aider. Dois-je mettre les mêmes informations d'authentification dans tous les Directory
? Dois-je utiliser Directory
ou Location
ou Files
? Ai-je raté quelque chose tous ensemble?
Merci d'avance!
Ci-dessous est un exemple de ma config d'Apache pour domain.com:
<Directory /var/www>
AuthType Digest
AuthName "realm"
AuthDigestAlgorithm MD5
AuthDigestDomain /http://domain.com/http://app1.domain.com/http://app2.domain.com/http://app3.domain.com/
AuthDigestNcCheck Off
AuthDigestNonceLifetime 0
AuthDigestQop auth
AuthDigestProvider file
AuthUserFile /etc/apache2/.htpasswd-digest
AuthGroupFile /dev/null
Require valid-user
</Directory>
Et voici un exemple de app1.domain.com:
<Directory /var/lib/app1>
AuthType Digest
AuthName "realm"
AuthDigestAlgorithm MD5
AuthDigestDomain /http://domain.com/http://app1.domain.com/http://app2.domain.com/http://app3.domain.com/
AuthDigestNcCheck Off
AuthDigestNonceLifetime 0
AuthDigestQop auth
AuthDigestProvider file
AuthUserFile /etc/apache2/.htpasswd-digest
AuthGroupFile /dev/null
Require valid-user
</Directory>
Décaler les choses encore plus loin, cela fonctionne lors de l'utilisation de IE6, mais pas Firefox ou Chrome. Est-ce que les clients de ne pas envoyer de l'authentification correctement, ou est le serveur envoie pas les informations d'identification correctes?
J'ai aussi lu sur des La RFC 2617 et écrit les en-têtes d'authentification à l'aide de PHP pour garantir que la demande/réponse de défi est correct. Cela n'a pas aidé du tout!
OriginalL'auteur | 2008-12-10
Vous devez vous connecter pour publier un commentaire.
La plupart des navigateurs ne respectent pas les Digérer "domaine" directive et de ne pas renvoyer des informations d'identification pour d'autres Uri. Autant que je sache, l'Opéra est le seul navigateur qui les honore.
Pour l'Opéra, le serveur(s) doit répondre avec le même "domaine" de la chaîne pour chaque URI dans la liste de domaine. En d'autres termes, si domain="/test /exemple", le serveur doit envoyer le "Royaume de Test - example.com" en-tête WWW-Authenticate pour ces deux URIs. Je suppose que l'Opéra n'est-ce parce qu'il stocke H(A1) au lieu du mot de passe de sécurité. Lire en RFC2617 pour en savoir plus sur cette.
Voici mon cross-browser solution à ce problème: http://travisce.com/arest/
OriginalL'auteur Travis Estill
Je n'ai aucune expérience avec quelque chose de moi-même. Mais j'ai juste pris un coup d'oeil à la Documentation d'Apache et trouvé ceci:
Il me semble donc que 0 secondes (la valeur que vous utilisez) ou illégale vraiment indique à Apache de faire expirer le nonce après 0 secondes qui serait exactement expliquer le comportement que vous geting.
OriginalL'auteur innaM
Pourrait un générique sur le AuthDigestDomain aider?
OriginalL'auteur jsnfwlr