Aufruf der IIS Webseiten mit Domain fremden FQDN vom lokalen Server aus nicht möglich

Aus MyWiki
Zur Navigation springen Zur Suche springen

Es gab das Problem, dass die IIS Seite myapp.publicdomain.de auf dem Server myServer.mydomain.com nicht vom myserver.mydomain.com Server selbst aufgerufen werden konnte. Von anderen Servern z.B. Myserver2.mydomain.com hat es funktioniert. Es trat also nur vom IIS Server selbst auf. 

Die Ursache hat wohl zwei Gründe. 1. Kerberos Authentifizierung ist aktiv 2. Loopback-Check von Windows.

Der Loopback Check soll, wenn ich das richtig verstanden habe, NTLM Relay Angriffe verhindern. 

Das Problem scheint wohl nur bei Servern aufzutreten, wenn eine Webseite mit .publicdomain.de aufgerufen wird statt mit .mydomain.com, da die Webseiten so eingestellt sind, dass zuerst Kerberos verwendet wird, aber für .publicdomain.de kein Kerberos Ticket ausgestellt werden kann.
Bei einem lokalen Aufruf wird dann durch den Loopback Check verhindert, dass auf NTLM zurückgegangen wird. Die Authentifizierung wird direkt mit HTTP 401 abgelehnt

Um das Problem zu lösen und zu erreichen, dass die Seite auch vom IIS Server selbst aufgerufen werden kann gibt es folgende Optionen

  • die einfache, aber unsichere Option ist, den Loopback Check abschalten. Unter “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa” einen DWORD Value mit “DisableLoopbackCheck“ erstellen und auf  1 setzen. Das kann man auch temporär machen und dann wieder löschen. Es braucht keinen Neustart von Windows oder IIS
  • die bessere Option ist, bei der Windows Authentifizierung der Webseite den Provider "Negotiate" entfernen, sodass nur NTLM verwendet wird.
    Außerdem muss in der Registry unter “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0” ein Multi-String Value „BackConnectionHostNames“ erstellt werden, der die FQDN der Webseiten enthält.
    Dazu kann man folgende Powershell Befehle verwenden:
    $array = @(); Get-IISSite | select Name | where Name -ne "Default Web Site" | % {$array += "$($_.Name).publicdomain.de"}
    New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" `
      -Name "BackConnectionHostNames" -Value $array `
      -PropertyType MultiString -Force