Authentification Windows sur IIS sur le serveur local avec une URL complète
9
J'ai une application Web configurée dans IIS 7 configurée avec l'authentification Windows. Je peux m'authentifier auprès de la machine via son URL entièrement qualifiée à partir de n'importe quelle autre machine et elle utilise le domaine approprié. Cependant, lorsque j'essaie de me connecter à la machine à partir d'elle-même via le domaine complet (soit dans un autre service, soit simplement via l'URL dans IE), l'invite de connexion Windows essaie de forcer l'utilisation de l'ordinateur comme domaine, et non domaine approprié pour la connexion. Essayer de spécifier le domaine avec domain\usernameou [email protected]échoue.
Je dois noter que l'affichage de l'application Web via localhostsur la machine fonctionne, mais l'utilisation de l' site.company.com/webserviceurl de style complet ne fonctionne pas sur la machine locale, car le domaine de connexion est incorrect. Que puis-je faire pour lui faire utiliser le domaine de connexion approprié?
J'essayais de faire la même chose. Accédez à un site Web sur l'IIS local à l'aide d'un nom de domaine complet et n'arrêtez pas de savoir où aller via IIS.
Quoi qu'il en soit, à partir de mes recherches, vous devez désactiver la vérification de bouclage pour les sites Web IIS locaux.
Cela est dû à une fonctionnalité de sécurité appelée LoopbackCheck.
Message d'erreur lorsque vous essayez d'accéder à un serveur localement à l'aide de son FQDN ou de son alias CNAME après avoir installé Windows Server 2003 Service Pack 1: «Accès refusé» ou «Aucun fournisseur de réseau n'a accepté le chemin d'accès réseau donné» http://support.microsoft .com / kb / 926642
Il existe deux résolutions:
Méthode 1 (recommandée): créez les noms d'hôte de l'autorité de sécurité locale qui peuvent être référencés dans une demande d'authentification NTLM. Pour ce faire, procédez comme suit pour tous les nœuds sur l'ordinateur client:
Cliquez sur Démarrer, sur Exécuter, tapez regedit, puis cliquez sur OK.
Recherchez et cliquez sur la sous-clé de Registre suivante: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
Cliquez avec le bouton droit sur MSV1_0, pointez sur Nouveau, puis cliquez sur Valeur de chaînes multiples.
Dans la colonne Nom, tapez BackConnectionHostNames et appuyez sur ENTRÉE.
Cliquez avec le bouton droit sur BackConnectionHostNames, puis cliquez sur Modifier.
Dans la zone données de la valeur, tapez le CNAME ou l'alias DNS, qui est utilisé pour les partages locaux sur l'ordinateur, puis cliquez sur OK.
Remarque: saisissez chaque nom d'hôte sur une ligne distincte.
Remarque: Si l'entrée de registre BackConnectionHostNames existe en tant que type REG_DWORD, vous devez supprimer l'entrée de registre BackConnectionHostNames.
Quittez l'Éditeur du Registre, puis redémarrez l'ordinateur.
Méthode 2: désactivez la vérification de bouclage d'authentification en définissant l'entrée de Registre DisableLoopbackCheck dans la sous-clé de Registre HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa sur 1. Pour définir l'entrée de Registre DisableLoopbackCheck sur 1, procédez comme suit sur l'ordinateur client:
Cliquez sur Démarrer, sur Exécuter, tapez regedit, puis cliquez sur OK.
Recherchez et puis cliquez sur la sous-clé de Registre suivante: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa
Cliquez avec le bouton droit sur Lsa, pointez sur Nouveau, puis cliquez sur Valeur DWORD.
Tapez DisableLoopbackCheck et appuyez sur ENTRÉE.
Cliquez avec le bouton droit sur DisableLoopbackCheck, puis cliquez sur Modifier.
Dans la zone Données de la valeur, tapez 1, puis cliquez sur OK.
Ce qui a fait l'affaire pour moi, c'est la 2ème option - DisableLoopbackCheckingdansHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Icare
1
Je peux vous dire, sur la base d'une certaine expérience de la configuration de l'authentification unique, qu'IE ne transmettra automatiquement un ticket Kerberos pour la connexion que si le site et le client se trouvent sur l'intranet ensemble, ou si le site se trouve dans la zone de confiance. Si IE voit http://site.company.com/webservice, il supposera que le site est sur Internet et ne transmettra pas les informations d'identification pour la connexion.
Nous avons constaté deux choses qui permettent d'autoriser le nom de domaine complet sur l'intranet est de fournir au serveur Web un certificat et d'utiliser SSL, ou de l'ajouter à la zone de confiance.
J'espère que cela vous aidera par rapport à votre configuration.
Cela ne résout pas le problème. J'ai déjà essayé d'ajouter le FQDN à la zone de confiance, en vain. Je pense cependant que cela résout un problème différent. L'ajouter à la zone de confiance permet une authentification automatique , dont je n'ai pas besoin - je suis d'accord avec la spécification des informations d'identification, mais le problème est qu'il n'accepte pas mon domaine spécifié pour les informations de connexion - il est bloqué sur le nom de l'ordinateur.
DisableLoopbackChecking
dansHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Je peux vous dire, sur la base d'une certaine expérience de la configuration de l'authentification unique, qu'IE ne transmettra automatiquement un ticket Kerberos pour la connexion que si le site et le client se trouvent sur l'intranet ensemble, ou si le site se trouve dans la zone de confiance. Si IE voit http://site.company.com/webservice, il supposera que le site est sur Internet et ne transmettra pas les informations d'identification pour la connexion.
Ce lien contient des informations utiles concernant IIS, IE et Kerberos. http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx
Nous avons constaté deux choses qui permettent d'autoriser le nom de domaine complet sur l'intranet est de fournir au serveur Web un certificat et d'utiliser SSL, ou de l'ajouter à la zone de confiance.
J'espère que cela vous aidera par rapport à votre configuration.
la source