Impossible que le connecteur IIS ISAPI Tomcat transmette l'authentification de base à Tomcat
-
05-07-2019 - |
Question
Nous avons correctement configuré IIS pour faire face à 2 instances Tomcat à l'aide de isapi_redirect.dll. Il fait tout intelligemment et nous sommes très heureux. À présent, cependant, nous utilisons l’une des instances de Tomcat pour servir des services Web via AXIS. Cela nécessite une autorisation BASIC, et les clients .NET échouent.
Les clients + .NET peuvent contourner IIS en naviguant sur le "site: 8180". et ils vont bien
+ Les clients Java peuvent utiliser IIS et ISAPI les transmet et s’authentifient parfaitement à l’aide de base.
+ Les clients .NET qui ont touché IIS ne parviennent pas à s’authentifier avec le même fichier unpw.
Fiddler rapporte cette session:
HTTP / 1.1 401 non autorisé
Date: mercredi 07 janvier 2009 14:31:59 GMT
Serveur: Microsoft-IIS / 6.0
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Pragma: pas de cache
Cache-Control: no-cache
Expire le: mercredi 31 décembre 1969 19:00:00 EST
WWW-Authenticate: Basic realm = " Module de contrôle quotidien "
Content-Type: text / html; charset = utf-8
Content-Length: 954
Proxy-Support: Authentification basée sur la session
Il ouvre ce qui ressemble à une boîte de dialogue d'authentification de base, mais au lieu de nous demander d'authentifier contre Daily Control Module, il nous demande d'authentifier contre le serveur Windows. Et bien sûr, le serveur IIS demande une autorisation NTLM. Si je configure le serveur entier pour utiliser l'authentification de base, je reçois ceci de Fiddler:
HTTP / 1.1 401 non autorisé
Content-Length: 1656
Type de contenu: text / html
Serveur: Microsoft-IIS / 6.0
WWW-Authenticate: Basic realm = " serverName "
X-Powered-By: ASP.NET
Date: mercredi, 07 janvier 2009 à 15:08:32 GMT
Soupir. De base, mais le domaine de base est maintenant remplacé par le serveur IIS. Donc, si je configure le serveur entier pour s’authentifier sur le royaume de base, le module de contrôle quotidien, j’obtiens ceci:
HTTP / 1.1 401 non autorisé
Date: mercredi 07 janvier 2009 15:11:45 GMT
Serveur: Microsoft-IIS / 6.0
WWW-Authenticate: Basic realm = " Module de contrôle quotidien "
X-Powered-By: ASP.NET
Pragma: pas de cache
Cache-Control: no-cache
Expire le: mercredi 31 décembre 1969 19:00:00 EST
WWW-Authenticate: Basic realm = " Module de contrôle quotidien "
Content-Type: text / html; charset = utf-8
Longueur du contenu: 954
Bizarre avec les deux en-têtes WWW-Auth, non? Quoi qu'il en soit, l'authentification à l'aide du même fichier unw fonctionnant directement sur Tomcat échoue, que je spécifie le domaine ou non.
À l'heure actuelle:
+ Anon est éteint
+ L'authentification Windows intégrée est désactivée
+ L'authentification de base est activée, le royaume étant configuré comme module de contrôle quotidien
Merci d'avoir regardé.
La solution
Quelle est la configuration de la sécurité du répertoire?
Êtes-vous sûr que seule l'authentification de base est activée?
Un autre point est. Peut-être qu'au niveau IIS, vous devriez utiliser l'authentification anonyme. Et Tomcat s’occupe de l’implémentation de l’échange d’authentification de base?
La source du problème (à partir de l'en-tête que vous avez posté) est que le client .net reconnaît que le site prend en charge l'authentification ntlm. Et essayez de vous authentifier avec ce protocole. Le client java ignore simplement l'option ntlm afin d'utiliser tout autre protocole d'authentification pris en charge par le site.
Assurez-vous que l'authentification intégrée n'est pas activée au niveau du site et du fichier.