Wir haben einige Webinhalte, die in virtuellen Verzeichnissen mithilfe der integrierten Windows-Authentifizierung eingerichtet werden. Die virtuellen Verzeichnisse werden unter Anwendungspools ausgeführt, die eine benutzerdefinierte Identität verwenden (benutzerdefiniertes Benutzerkonto). Das Problem besteht darin, dass die NTLM-Authentifizierung funktioniert, die Kerberos-Authentifizierung jedoch nicht. Dies ist dieselbe Konfiguration, die unter IIS 6 funktioniert hat, aber wir müssen zu IIS 7 migrieren und die Kerberos-Authentifizierung funktioniert nicht.
Hier finden Sie weitere Informationen zu meiner Umgebung:
Virtual Directory-Authentifizierungseinstellungen:
App-Pool-Einstellungen:
Web.config-Einstellungen:
Virtuelle Verzeichnisberechtigungen:
Betriebssystemeinstellungen:
Hier ist die Analyse, die ich von Fiddler bekomme, wenn ich IIS 6 mit IIS 7 vergleiche. Die Kerberos-Authentifizierung funktioniert gut in IIS 6 mit einem App-Pool, der mit einer benutzerdefinierten Identität ausgeführt wird.
Fiddler:
(mit Domäne \ Benutzer)
Anfrage 1 (keine Berechtigung)
%Vor%Antwort 1 (401) (Herausforderung)
%Vor%Anfrage 2 (Kerberos-Ticket)
%Vor%Antwort 2 (401) (Kerberos-Antwort)
%Vor%Anfrage 3 (Kerberos-Ticket)
%Vor%Antwort 3 (401) (Kerberos-Antwort)
%Vor%Anfrage 4 (Kerberos-Ticket)
%Vor%Antwort 4 (200) (Kerberos-Antwort)
%Vor%Und die Transaktion wird abgeschlossen und der Browser zeigt die Seite an.
Fiddler:
(mit Domäne \ Benutzer)
Anfrage 1 (keine Berechtigung)
%Vor%Antwort 1 (401) (verhandeln)
%Vor%Anfrage 2 (Kerberos-Ticket)
%Vor%Antwort 2 (401) (verhandeln)
%Vor%Beachten Sie, dass IIS 7 mein Kerberos-Ticket nicht in Antwort 2 akzeptiert. Irgendeine Idee warum nicht? Muss ich etwas in IIS 7 neu konfigurieren, damit die Kerberos-Authentifizierung funktioniert?
Damit IIS 7 die Authentifizierung als IIS 6 aushandeln kann, musste ich die "useAppPoolCredentials" des windowsAuthentication-Elements meines virtuellen Verzeichnisses in der Datei "applicationHost.config" auf "true" setzen. Dies geschieht mit einem der folgenden Befehle:
%Vor%Um auf einzelne Anwendungen anzuwenden:
Erstes Entsperren:
%Vor%Wenden Sie dann an:
%Vor%HINWEIS - Kerberos funktioniert nicht. Was dies bewirkt, macht IIS 7 wie IIS 6 aus. Das bedeutet, dass der Server automatisch auf NTLM zurückgreift, wenn die Kerberos-Aushandlung zwischen dem Server und dem Client fehlschlägt. Das ist eigentlich die Sache, die die Authentifizierung für mich (NTLM) funktionierte.
Verwenden Sie den Negotiate: Kerberos-Anbieter für die Windows-Authentifizierung? Wenn bei Kerberos ein Problem auftritt, können Sie möglicherweise weitere Details zu dem Problem erhalten, indem Sie Network Monitor (oder etwas Ähnliches wie WireShark ) auf dem Client, während er versucht, sich zu authentifizieren. Sehen Sie sich die Nachrichten im Internet Explorer-Prozess an und Sie können möglicherweise einige Kerberos-Vorgänge sehen.
Tags und Links wcf authentication kerberos iis-7 ntlm