Kerberos Delegation mit IIS und SQLServer

volkhardv 0 Ansehenspunkte
2024-05-22T05:11:48.77+00:00

Hallo,
ich habe folgende Umgebung:

  1. Domäncontroller DomCtrl Win2016
    Delegierung im AD: Vertrauen Sie diesem Computer nicht für die Delegierung
  2. Memberserver Sqlserver: Win2016 mit SQLServer 2019
    Delegierung im AD: Vertrauen Sie diesem Computer nicht für die Delegierung
    Der SQLService läuft unter einen Domänen Account mit den Kerberos SPNs
    1. MSSQLSvc/sqlserver.vagintern3.local
    2. MSSQLSvc/sqlserver.vagintern3.local:1433
  3. Memberserver Webserver Win2016 mit IIS
    Delegierung im AD: Diesem Computer für die Delegierung an einen beliebigen Dienst vertrauen (nur Kerberos)
    Der ApplicationPool läuft mit der Pool-Identität.

Auf dem IIS-Server läuft eine .NetCore-WebApplication mit Windows-Authentifizierung, welche eine vertraute Verbindung zum SQLServer nutzt. Ein Benutzer UserA der WebApplikation ist also mit seinem AD-Konto UserA an der WebApplikation authentifiziert.

Ziel ist es, dass die Verbindung von der WebApplikation auf dem Webserver zum SQLServer über den Benutzeraccount UserA des Benutzers aufgebaut wird. D.h. die Authentifzierung des Benutzers UserA an der WebApplication wird an den SQLServer weitergereicht. Da dies laut Doku nur über Kerberos funktioniert, habe ich obige beschriebene Kerberos-Konfiguration vorgenommen.

Leider verbindet sich die WebApplikation mit dem Computer-Account WebServer$ - und nicht mit dem Benutzer UserA.

Hat jemand eine Idee?

Vielen Dank und viele Grüße

Windows
Windows
Eine Familie von Microsoft-Betriebssystemen, die auf PCs, Tablets, Laptops, Smartphones, Internet-of-Things-Geräten, eigenständigen Mixed Reality-Headsets, großen Bildschirmen für die Zusammenarbeit und anderen Geräten ausgeführt werden
50 Fragen
Internetinformationsdienste
SQL Server
SQL Server
Eine Familie von Verwaltungs- und Analysesystemen für relationale Datenbanken von Microsoft für E-Commerce-, Branchen- und Data Warehousing-Lösungen.
9 Fragen
0 Kommentare Keine Kommentare
{count} Stimmen

2 Antworten

Sortieren nach: Sehr hilfreich
  1. Ivan Dragov (CONCENTRIX Corporation) 2 325 Ansehenspunkte Microsoft Vendor
    2024-05-23T14:08:57.1233333+00:00

    Hallo volkhardv,

    Du solltest überprüfen, ob Du die Schritte in Schritt 8, Method 2: Configuration when we have SPN registered to the domain account korrekt ausgeführt hast, wie in diesem Artikel beschrieben:

    Setting up Kerberos Authentication for a Website in IIS

    Wenn alles korrekt ist, muss IIS seine Anwendungspoolidentität (die Du geändert hast, um auf das Domänenbenutzerkonto (domain user account) zu verweisen) verwenden, um das Kerberos-Token/Ticket zu entschlüsseln, das von AD erhalten und vom Client an den Server weitergeleitet wurde, um den Benutzer zu authentifizieren.

    Gruß,

    Ivan Dragov

  2. volkhardv 0 Ansehenspunkte
    2024-06-18T12:49:00.2766667+00:00

    Hallo zuasmmen,
    es hat ein wenig gedauert - aber jetzt ist es gelöst:

    1. Die SPNs oben müssen für den SQL-Dienste-Account eingerichtet werden
    2. Die Delegierungs-EInstellungen am WebServer müssen mit den SQL-Dienste-Konto-SPNs sein:
      1. Option: Trust this computer for delegation to specified services only
      2. Option: Use any authentification protocol
      3. Option: Services to which the account can present delegated credentials:
    3. Die AspNet.Core-WebApp muss Windows-Authentication unterstützen (auch im IIS zusätzlich einstellen) und die SQLServer-Requests mit dem HttpContext impersonifiziert werden.

    Viele Grüße
    Volkhard