web-dev-qa-db-fra.com

L'authentification Windows ne fonctionne pas dans IIS 7.5

Je rencontre un problème pour que l'authentification Windows fonctionne sur IIS 7.5. L'application est un site interne construit dans asp.net MVC 3. Le pool d'applications utilise un utilisateur de domaine spécifique et le site utilise l'authentification Windows. Chaque fois que j'essaie de lancer le site IE me demande une connexion.

Si j'annule suffisamment le site apparaît, foiré à la recherche, mais mon nom associé à ma connexion Windows s'affiche en haut. Cela m'indique donc que le site récupère correctement mes informations d'identification Windows.

J'ai ajouté l'utilisateur local du réseau pour avoir un accès en lecture au dossier inetpub sur le serveur et maintenant il ne demande pas de connexion avec IE 8. Mais sur chrome = J'obtiens cette erreur "Erreur 338 (net :: ERR_INVALID_AUTH_CREDENTIALS): Erreur inconnue.".

C'est dans notre zone de sites intranet. J'aurais dû le dire mais j'ai oublié. Le site fonctionnait sur notre ancien serveur de développement, mais lorsque j'ai effectué une mise à niveau vers Win 2008 R2 avec IIS 7,5, il a cessé de fonctionner. Auparavant, il était en 2003 avec IIS 6.0.

Je me demande si quelqu'un a une idée de ce que je peux essayer d'autre. Je tourne à peu près mes roues à ce stade.

J'ai essayé toutes les solutions dans les liens ci-dessous et aucune d'entre elles n'a résolu le problème

http://forums.iis.net/t/1177154.aspx

http://forums.iis.net/t/1178188.aspx

Réception de l'invite de connexion à l'aide de l'authentification Windows intégrée

http://warnajith.blogspot.com/2011/06/iis-75-401-unauthorized-access-error.html

http://forums.asp.net/t/1639511.aspx/1

https://superuser.com/questions/128746/iis-asks-for-login-pass-when-accessed-using-hostname-but-not-when-localhost-is

http://ask.metafilter.com/183636/Prompted-for-a-username-and-password-when-browsing-to-an-IIS-virtual-directory

IIS 7 et authentification Windows

28
divide_byzero

J'ai trouvé la réponse à cela. Il s'agit d'un paramètre de configuration qui n'est pas mappé dans l'interface graphique. J'ai dû aller dans le fichier de configuration de l'hôte d'application situé dans <% SystemDrive%>/Windows/System32/inetsrv/config et modifier les paramètres ci-dessous.

paramètres par défaut où

<windowsAuthentication enabled="true"> <providers> <add value="Negotiate" /> </providers> </windowsAuthentication>

Changé en cela et cela a fonctionné.

<windowsAuthentication enabled="true" useKernelMode="true" useAppPoolCredentials="true"> <providers> <add value="NTLM" /> </providers> </windowsAuthentication>

17
divide_byzero

Remarque connexe: si vous essayez de répliquer votre site sur localhost et que l'authentification Windows est activée et échoue toujours, la solution consiste à pirater le registre pour éviter la vérification du bouclage:

À l'aide de regedit, accédez à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 Ajoutez une nouvelle valeur de chaînes multiples à MSV1_0 et nommez-la BackConnectionHostNames Ajoutez les noms d'hôte que vous souhaitez utiliser. Exemple, "mysite.com". Redémarrez IIS.

Lien source

La valeur doit être le nom du site Web dans votre fichier d'hôtes Windows.

De plus, pour pouvoir accéder à un dossier non authentifié/data à l'aide de file_get_contents de PHP, j'ai dû l'ajouter au fichier applicationHost.config, pour éviter les erreurs 401.

<location path="mysite.com/data">
        <system.webServer>
            <security>
                <authentication>
                     <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
23
captainhero70

Pour que les informations d'identification intégrées soient transmises par IE, le site doit être dans votre zone de sites Intranet. Il ne peut pas être sur des sites de confiance ou sur aucun autre site.

6
Steven Murawski

J'ai eu un problème similaire et il a été résolu en ajoutant le groupe d'utilisateurs (MYDOMAIN\Users) au dossier physique de l'application avec des autorisations de lecture.

2
rhysp

j'ai un problème similaire qui n'est résolu qu'en déplaçant NTLM au-dessus de Kerberos dans les fournisseurs, comme expliqué par Rory, ou en modifiant DNS. Le problème se produit uniquement dans IIS7 lorsque l'en-tête Host du site Web existe en tant que CNAME (alias) dans le DNS. dans IIS6, l'authentification Windows intégrée utilise uniquement NTLM par défaut. dans IIS7, IWS utilise des kerberos avant NTLM par défaut. Le remplacement de l'enregistrement CNAME par un enregistrement A résout le problème. Kerberos n'a aucun problème avec les enregistrements A dans DNS, mais il a des problèmes avec les alias.

Apparemment, les CNAME DNS ne sont pas compatibles avec Kerberos sous Windows 2008.

chris

2

Si le navigateur vous demande des informations d'identification, je pense que vos informations d'identification de pool d'applications n'ont pas accès à certaines des ressources de votre page. Avez-vous essayé de créer une page html vierge et d'accéder à cette page?

<html>
<body>
hello world!
</body>
</html>
0
Ray Cheng

J'ai le même problème.

J'avais une application sous Site Web par défaut qui avait déjà activé l'authentification Windows mais qui ne fonctionnait pas. J'ai résolu de désactiver l'authentification anonyme sur le site Web par défaut et également d'activer l'authentification Windows sur le site Web par défaut.

0
FTF