Benutzer mit den meisten Antworten
Kerberos 2008 R2 SPN Fehler

Frage
-
Hallo,
wir erhalten seit geraumer Zeit in einer virtuellen Windows Server 2008 R2 Umgebung nachfolgende Fehler. Diese erscheinen im Eventlog in regelmäßigen Abständen. Bei einer Recherche habe ich auf Microsoft ein paar Anleitungen zu diesem Fehler gefunden, die leider nicht zum Erfolg geführt haben. Ferner ist im Internet allgemein nicht viel zu diesem Fehler zu finden. Die Meldung erscheint auf einem DC, Quelle ist ein Datenbankserver, der auch Memberserver der Domäne ist.
Der KDC hat beim Verarbeiten einer Kerberos-Authentifizierungsanforderung doppelte Namen ermittelt. Der doppelte Name ist "MSSQLSvc/servername.domaene.local:51283" (vom Typ "DS_SERVICE_PRINCIPAL_NAME"). Dies kann zu Authentifizierungsfehlern oder Herabstufungen zu NTLM führen. Entfernen Sie in Active Directory die doppelten Einträge für "MSSQLSvc/servername.domaene.local:51283", um dies zu verhindern.
Man achte darauf, dass bei der einen Fehlermeldung der Servername klein und bei der Anderen groß geschrieben ist. Wo diese Einträge jedoch herkommen kann ich leider nicht sagen. Habe mittlerweile einige Zeit investiert, jedoch nichts gefunden.
Der KDC hat beim Verarbeiten einer Kerberos-Authentifizierungsanforderung doppelte Namen ermittelt. Der doppelte Name ist "MSSQLSvc/SERVERNAME.domaene.local:51283" (vom Typ "DS_SERVICE_PRINCIPAL_NAME"). Dies kann zu Authentifizierungsfehlern oder Herabstufungen zu NTLM führen. Entfernen Sie in Active Directory die doppelten Einträge für "MSSQLSvc/SERVERNAME.domaene.local:51283", um dies zu verhindern.
mit dem Befehl setspn -x konnte ich am DC folgendes ermitteln:
Die Domäne "DC=domaene,DC=local" wird überprüft.
Eintrag 0 wird verarbeitet.
MSSQLSvc/SERVERNAME.domaene.local:domaene wird auf diesen Konten registriert:
CN=Administrator,CN=Users,DC=domaene,DC=local
CN=SERVERNAME,OU=Meine Server,DC=domaene,DC=localMSSQLSvc/SERVERNAME.domaene.local:51283 wird auf diesen Konten registriert:
CN=Administrator,CN=Users,DC=domaene,DC=local
CN=SERVERNAME,OU=Meine Server,DC=domaene,DC=local2 Gruppen von doppelten SPNs gefunden.
Über jeden Tipp freue ich mich. Ich tappe im Dunklen...
- Verschoben Raul TalmaciuMicrosoft contingent staff Mittwoch, 14. August 2013 07:10 AD Thema
Antworten
-
Das Ergebnis von setspn -X (besser noch mit -F für "forestwide") ist doch eindeutig.
Es wurden die SPNs:
MSSQLSvc/SERVERNAME.domaene.local:domaene
MSSQLSvc/SERVERNAME.domaene.local:51283
jeweils auf das Konto:
CN=Administrator,CN=Users,DC=domaene,DC=local
- und -
CN=SERVERNAME,OU=Meine Server,DC=domaene,DC=local
registriert.
Dies bemängelt zu recht der Domain Controller, da SPNs ein-eindeutig zugeordnet werden müssen, ansonsten kommt es dazu, dass in diesem Fall ausgestellte Kerberos-Ticket (hier: Service Ticket) einmal mit dem Password des Administrators, das andere mal mit dem Passwort des Computerkontos SERVERNAME verschlüsselt wird (da die LDAP-Anfrage des KDC-Dienstes nicht immer die gleiche Reihenfolge von Ergebnis zurückliefert - s. http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx) -> Kerberos Ticketing Process - Punkt 4 ff.)
Da jedoch der zugehörige Dienst für "MSSQLSvc/SERVERNAME.domaene.local" (hier vermutlich die "Default Instance" und die Instanz auf Port 51283 des SQL-Server auf Server SERVERNAME) nur mit einem Service-Konto laufen kann und mit dem Passwort genau diesem Service Konto versucht das angebotenen Kerberos-Ticket wieder zu entschlüsseln, kann es dazu kommen, dass, wenn das Ticket vom Domain Controller (hier: KDC-Dienst Ticket-Granting Service TGS) mit dem jeweilig anderen Passwort verschlüsselt wurde es zum Kerberos-Fehler "KRB_AP_ERR_MODIFIED" kommt (s.a. http://blogs.technet.com/b/askds/archive/2012/07/27/kerberos-errors-in-network-captures.aspx)
Deswegen schau nach, unter welchem Service Konto der jeweilige Dienst zu den SPNs läuft und lösche die jeweils anderen SPNs von den Accounts mittels:
setspn -D MSSQLSvc/SERVERNAME.domaene.local <Accountname>
It will delete SPN "MSSQLSvc/SERVERNAME.domaene.local" for account with "Accountname"Hintergrundinformationen zu Kerberos findest Du u.a. hier:
Kerberos for the Busy Admin
http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspxHow the Kerberos Version 5 Authentication Protocol Works
http://technet.microsoft.com/en-us/library/cc772815.aspxSpeziell für SQL-Server:
Using Kerberos Authentication with SQL Server
http://technet.microsoft.com/en-us/library/cc280745(v=sql.105).aspxSQL Server - Registering a Service Principal Name
http://technet.microsoft.com/en-us/library/ms191153(v=sql.105).aspxHow to use Kerberos authentication in SQL Server
http://support.microsoft.com/kb/319723/en-us--
Tobias RedelbergerStarNET Services (HomeOffice)Frankfurter Allee 193D-10365 BerlinTel: +49 (30) 86 87 02 678Mobil: +49 (163) 84 74 421- Bearbeitet Tobias Redelberger Mittwoch, 14. August 2013 08:24 Enchancement
- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Mittwoch, 14. August 2013 13:00
-
Alles (grob) soweit richtig :)
Hinweis: Die Konten "Local System" (nicht empfohlen, zuviele Berechtigungen) und "Network Service" (besser, weil weniger Berechtigungen - noch besser: dedizierter Domain User Account mit "least privileges") mappen auf das zugrundeliegenden Computerkonto
Die genauen Details findest Du - wie schon geschrieben - unter folgenden Artikeln:
Kerberos for the Busy Admin
http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspxHow the Kerberos Version 5 Authentication Protocol Works
http://technet.microsoft.com/en-us/library/cc772815.aspxSpeziell für SQL-Server:
Using Kerberos Authentication with SQL Server
http://technet.microsoft.com/en-us/library/cc280745(v=sql.105).aspxSQL Server - Registering a Service Principal Name
http://technet.microsoft.com/en-us/library/ms191153(v=sql.105).aspxHow to use Kerberos authentication in SQL Server
http://support.microsoft.com/kb/319723/en-us--
Tobias RedelbergerStarNET Services (HomeOffice)Frankfurter Allee 193D-10365 BerlinTel: +49 (30) 86 87 02 678Mobil: +49 (163) 84 74 421- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Mittwoch, 14. August 2013 13:00
Alle Antworten
-
Das Ergebnis von setspn -X (besser noch mit -F für "forestwide") ist doch eindeutig.
Es wurden die SPNs:
MSSQLSvc/SERVERNAME.domaene.local:domaene
MSSQLSvc/SERVERNAME.domaene.local:51283
jeweils auf das Konto:
CN=Administrator,CN=Users,DC=domaene,DC=local
- und -
CN=SERVERNAME,OU=Meine Server,DC=domaene,DC=local
registriert.
Dies bemängelt zu recht der Domain Controller, da SPNs ein-eindeutig zugeordnet werden müssen, ansonsten kommt es dazu, dass in diesem Fall ausgestellte Kerberos-Ticket (hier: Service Ticket) einmal mit dem Password des Administrators, das andere mal mit dem Passwort des Computerkontos SERVERNAME verschlüsselt wird (da die LDAP-Anfrage des KDC-Dienstes nicht immer die gleiche Reihenfolge von Ergebnis zurückliefert - s. http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx) -> Kerberos Ticketing Process - Punkt 4 ff.)
Da jedoch der zugehörige Dienst für "MSSQLSvc/SERVERNAME.domaene.local" (hier vermutlich die "Default Instance" und die Instanz auf Port 51283 des SQL-Server auf Server SERVERNAME) nur mit einem Service-Konto laufen kann und mit dem Passwort genau diesem Service Konto versucht das angebotenen Kerberos-Ticket wieder zu entschlüsseln, kann es dazu kommen, dass, wenn das Ticket vom Domain Controller (hier: KDC-Dienst Ticket-Granting Service TGS) mit dem jeweilig anderen Passwort verschlüsselt wurde es zum Kerberos-Fehler "KRB_AP_ERR_MODIFIED" kommt (s.a. http://blogs.technet.com/b/askds/archive/2012/07/27/kerberos-errors-in-network-captures.aspx)
Deswegen schau nach, unter welchem Service Konto der jeweilige Dienst zu den SPNs läuft und lösche die jeweils anderen SPNs von den Accounts mittels:
setspn -D MSSQLSvc/SERVERNAME.domaene.local <Accountname>
It will delete SPN "MSSQLSvc/SERVERNAME.domaene.local" for account with "Accountname"Hintergrundinformationen zu Kerberos findest Du u.a. hier:
Kerberos for the Busy Admin
http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspxHow the Kerberos Version 5 Authentication Protocol Works
http://technet.microsoft.com/en-us/library/cc772815.aspxSpeziell für SQL-Server:
Using Kerberos Authentication with SQL Server
http://technet.microsoft.com/en-us/library/cc280745(v=sql.105).aspxSQL Server - Registering a Service Principal Name
http://technet.microsoft.com/en-us/library/ms191153(v=sql.105).aspxHow to use Kerberos authentication in SQL Server
http://support.microsoft.com/kb/319723/en-us--
Tobias RedelbergerStarNET Services (HomeOffice)Frankfurter Allee 193D-10365 BerlinTel: +49 (30) 86 87 02 678Mobil: +49 (163) 84 74 421- Bearbeitet Tobias Redelberger Mittwoch, 14. August 2013 08:24 Enchancement
- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Mittwoch, 14. August 2013 13:00
-
Danke für die ausführliche Erläuterung.
Ich versuche das mal zusammenzufassen wie ich das verstanden habe, denn ich möchte nicht nur den Fehler beheben, sondern auch den Hintergrund verstehen.
Ich habe einen Server in der Domäne (Server, domaene.local)
Auf dem Server läuft SQL als Netzwerkdienst
Nun wird in der AD im Computerkonto (Server) der SPN für diesen Service vergeben, damit Kerberos weiß welchem Konto er für die Authentifizierung das Ticket zuweisen kann.
Ist das soweit richtig?
In meinem Fall war der SPN zusätzlich im Administratorkonto vergeben was nun zu diesem Fehler geführt hat. Kann dieser Umstand der Tatsache geschuldet sein, wenn ein zusätzlicher SQL Dienst als Administrator ausgeführt wurde?
-
Alles (grob) soweit richtig :)
Hinweis: Die Konten "Local System" (nicht empfohlen, zuviele Berechtigungen) und "Network Service" (besser, weil weniger Berechtigungen - noch besser: dedizierter Domain User Account mit "least privileges") mappen auf das zugrundeliegenden Computerkonto
Die genauen Details findest Du - wie schon geschrieben - unter folgenden Artikeln:
Kerberos for the Busy Admin
http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspxHow the Kerberos Version 5 Authentication Protocol Works
http://technet.microsoft.com/en-us/library/cc772815.aspxSpeziell für SQL-Server:
Using Kerberos Authentication with SQL Server
http://technet.microsoft.com/en-us/library/cc280745(v=sql.105).aspxSQL Server - Registering a Service Principal Name
http://technet.microsoft.com/en-us/library/ms191153(v=sql.105).aspxHow to use Kerberos authentication in SQL Server
http://support.microsoft.com/kb/319723/en-us--
Tobias RedelbergerStarNET Services (HomeOffice)Frankfurter Allee 193D-10365 BerlinTel: +49 (30) 86 87 02 678Mobil: +49 (163) 84 74 421- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Mittwoch, 14. August 2013 13:00