Die Kerberos-Authentifizierung in IIS 7

Wir haben einige web-Inhalte, die das setup im virtuellen Verzeichnisse mithilfe der integrierten windows-Authentifizierung. Die virtuellen Verzeichnisse sind unter Anwendungspools, die mit einem eigenen Identität (eigener Benutzer-account). Das problem ist, dass die NTLM-Authentifizierung funktioniert jedoch die Kerberos-Authentifizierung nicht. Dies ist die gleiche Konfiguration, die funktionierte unter IIS 6, aber wir müssen die Migration auf IIS 7-und Kerberos-Authentifizierung funktioniert nicht.

Hier einige weitere Informationen zu meiner Umgebung:

Virtual Directory-Authentifizierung Einstellungen:

  • Alles deaktiviert, außer für die Windows-Authentifizierung
  • Enable kernel-mode authentication: aktiviert

App-Pool-Einstellungen:

  • Pipeline-Managed-Modus: Classic
  • Identität: Benutzerdefinierte lokale Benutzer

Web.config Einstellungen:

  • authentication mode = "Windows"
  • system.serviceModel/bindings/basicHttpBinding/Bindung/Sicherheit/mode = TransportCredentialOnly
  • system.serviceModel/bindings/basicHttpBinding/Bindung/Sicherheit/Verkehr/clientCredentailType = Windows
  • serviceHostingEnvironment/aspNetCompatibilityEnabled = " true

Virtual Directory-Berechtigungen:

  • Benutzerdefinierte lokale Gruppen: Wir fügen Sie Domänen-Benutzer zu der lokalen Gruppen für den Zugang zum Dienst

OS Einstellungen:

  • IIS 7
  • Windows Server 2008 x64 standard SP2

Hier ist die Analyse, die ich von fiddler Vergleich von IIS 6 auf IIS 7. Kerberos-Authentifizierung ist in Ordnung, die in IIS 6 mit einer app pool mit einer benutzerdefinierten Identität.

Referenz (IIS 6) (Funktioniert):

Fiddler:

(Mit Domäne\Benutzer)

Anfrage 1 (kein auth)

No Proxy-Authorization Header is present.
No Authorization Header is present.

Antwort 1 (401) (challenge)

No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM

Anfrage 2 (Kerberos-ticket)

Authorization Header (Negotiate) appears to contain a Kerberos ticket:
<data>

Antwort 2 (401) (Kerberos Antwort)

WWW-Authenticate Header (Negotiate) appears to be a Kerberos reply:
<data>

Anfrage 3 (Kerberos-ticket)

Authorization Header (Negotiate) appears to contain a Kerberos ticket:
<data>

Antwort 3 (401) (Kerberos Antwort)

WWW-Authenticate Header (Negotiate) appears to be a Kerberos reply:
<data>

Anfrage 4 (Kerberos-ticket)

Authorization Header (Negotiate) appears to contain a Kerberos ticket:
<data>

Antwort 4 (200) (Kerberos Antwort)

WWW-Authenticate Header (Negotiate) appears to be a Kerberos reply:
<data>

Und die Transaktion abgeschlossen ist und der browser zeigt die Seite an.


(IIS 7) (Funktioniert nicht):

Fiddler:

(Mit Domäne\Benutzer)

Anfrage 1 (kein auth)

No Proxy-Authorization Header is present.
No Authorization Header is present.

Antwort 1 (401) ( Verhandeln)

No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM

Anfrage 2 (Kerberos-ticket)

Authorization Header (Negotiate) appears to contain a Kerberos ticket:
<data>

Antwort 2 (401) (Verhandeln)

No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM

Beachten Sie, dass IIS 7 nicht auf die Annahme meiner Kerberos-ticket in Antwort 2. Jede Idee, warum nicht? Muss ich neu konfigurieren, ein paar Sachen in IIS 7, um die Kerberos-Authentifizierung zu arbeiten?

Schreibe einen Kommentar