Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die fehler KDC_ERR_S_PRINCIPAL_UNKNOWN und KDC_ERR_PRINCIPAL_NOT_UNIQUE deuten darauf hin, dass der Client Zugriff auf einen Dienst anfordert, den Kerberos nicht identifizieren kann. Diese Art von Fehler weist auf ein oder mehrere der folgenden Probleme hin:
- Das Dienstkonto ist nicht ordnungsgemäß konfiguriert.
- Der Dienst verwendet nicht das Dienstkonto, das dafür konfiguriert ist.
- Mehr als ein Konto ist für den Dienst konfiguriert.
- Der Client hat den Dienst nicht ordnungsgemäß angefordert.
Jeder Dienst verfügt über einen Dienstprinzipalnamen (SERVICE Principal Name, SPN), der ihn für Clients und andere Dienste identifiziert. Der SPN ist ein Attribut des Active Directory Domain Services (AD DS)-Kontos, das der Dienst verwendet. Ein Dienst kann im Kontext eines benutzerdefinierten Dienstkontos oder im Kontext eines integrierten Kontos ausgeführt werden, z. B. das Computerkonto des lokalen Computers. Der Dienst kann auch in einem Sicherheitskontext ausgeführt werden, der sich auf das Computerkonto bezieht, z. B. lokales System oder Netzwerkdienst.
Die Art und Weise, wie Sie SPNs konfigurieren, unterscheidet sich je nach Kontotyp, den Ihr Dienst verwendet:
- Ein benutzerdefiniertes Dienstkonto muss für jeden Dienst, der das Konto verwendet, über einen expliziten SPN verfügen.
- Das Computerkonto verfügt möglicherweise über explizite SPNs, die für die Dienste konfiguriert sind, die sie verwenden. Allgemeine Dienstklassen werden jedoch automatisch dem HOST-SPN zugeordnet. Der HOST-SPN wird automatisch für jedes Computerkonto generiert. In solchen Fällen verfügen einige Dienste möglicherweise nicht über einen eigenen SPN, der auf dem Computerkonto konfiguriert ist.
Von Bedeutung
- Sofern kein Dienst das Computerkonto und den HOST-SPN verwendet, müssen SPNs in der AD DS-Gesamtstruktur eindeutig sein. In einer Mehrwaldumgebung muss der SPN in allen zugehörigen Wäldern eindeutig sein.
- Ein SPN kann nur einem Konto zugeordnet werden. Eine häufige Ursache für SPN-Probleme besteht darin, einen Dienst für die Verwendung eines benutzerdefinierten Kontos zu konfigurieren, obwohl der SPN sowohl dem benutzerdefinierten Konto als auch dem Computerkonto zugeordnet ist.
Tracing-Daten sammeln und das Problem SPN identifizieren
Wenn Sie noch keine Ablaufverfolgungsdaten für das Problem gesammelt haben, tun Sie dies jetzt. Weitere Informationen finden Sie unter Anleitung zur Problembehandlung bei der Kerberos-Authentifizierung: 3. Sammeln von Ablaufverfolgungs- und Ticketdaten. Überprüfen Sie die Protokolldaten, um die vom Kunden angeforderte SPN zu finden.
Überprüfen Sie den SPN, den das Dienstkonto verwendet.
Diese Verfahren unterscheiden sich geringfügig, je nachdem, ob der Dienst ein benutzerdefiniertes Konto oder ein Computerkonto verwendet. In der folgenden Tabelle sind die Unterschiede zusammengefasst.
Dienst verwendet ein benutzerdefiniertes Konto | Der Dienst verwendet das Computerkonto. |
---|---|
Der angeforderte SPN muss mit dem Konto SPN übereinstimmen. Der SPN muss in der Gesamtstruktur eindeutig sein. |
Der angeforderte SPN kann mit einem der Konto-SPNs übereinstimmen. Häufig verwendete Dienste (z. B. der Webdienst) verwenden jedoch in der Regel den automatischen HOST-SPN anstelle eines eindeutigen SPN. Wenn das Konto über einen SPN verfügt, der für den Dienst spezifisch ist, muss dieser SPN im Wald eindeutig sein. |
Dient zum Abrufen einer Liste von SPNs, die dem Dienstkonto zugewiesen sind. Öffnen Sie dazu ein Administrator-Eingabeaufforderungsfenster auf einem Domänencontroller, und führen Sie dann den folgenden Befehl aus:
setspn -L <Name>
Hinweis
- In diesem Befehl stellt Name> den Namen des Computers dar, <auf dem der Dienst ausgeführt wird, oder ein benutzerdefiniertes Konto, das der Dienst verwendet.
- Verwenden Sie in einer Umgebung mit mehreren Domänen das <Format "Domäne\Name> ", um die Domäne des Kontos anzugeben.
Suchen Sie nach Konten, die den angeforderten SPN verwenden. Diese Suche identifiziert alle doppelten SPNs oder SPNs, die dem falschen Konto zugewiesen sind.
Hinweis
Um dieses Verfahren auszuführen, müssen Sie mindestens über Enterprise-Administratorberechtigungen verfügen.
Um das Konto oder die Konten zu ermitteln, die dem SPN zugeordnet sind, öffnen Sie ein Verwaltungs-Eingabeaufforderungsfenster, und führen Sie dann einen der folgenden Befehle aus.
Einzelne Gesamtstruktur Mehrere vertrauenswürdige Gesamtstrukturen setspn -Q <SPN>
setspn -X <SPN>
Hinweis
- In diesem Befehl steht <SPN> für den SPN, nach dem Sie suchen.
- Die Suche nach Duplikaten, insbesondere im gesamten Netzwerk, kann eine lange Zeit und viel Arbeitsspeicher in Anspruch nehmen.
Weitere Informationen zum setspn
Befehl und zu den verfügbaren Optionen finden Sie unter setspn.
Konfigurieren Sie den SPN nach Bedarf neu.
Die nächsten Schritte hängen vom Ergebnis der Ablaufverfolgungsdaten, der setspn
Abfragen und dem Kontotyp ab, den Ihr Dienst verwendet.
Sie könnten die folgenden Probleme sehen.
Benutzerdefiniertes Konto | Computerkonto |
---|---|
Mindestens ein anderes Konto als das Dienstkonto verfügt über den SPN. | Mindestens ein anderes Konto als das Computerkonto verfügt über den SPN. |
Das benutzerdefinierte Konto verfügt nicht über den SPN. | Das Computerkonto sollte über den SPN verfügen, aber nicht. 1 |
Das benutzerdefinierte Konto verfügt über einen falschen SPN oder einen SPN, der nicht mit dem SPN übereinstimmt, den der Client angefordert hat.2 | Das Computerkonto verfügt über einen falschen SPN oder einen SPN, der nicht mit dem vom Client angeforderten SPN übereinstimmt. 2 |
1 Eine Liste der Dienste, die den HOST-SPN des Computerkontos verwenden können, finden Sie unter setspn. Wenn Ihr Dienst keiner dieser allgemeinen Dienste ist, müssen Sie einen SPN für den Dienst auf dem Computerkonto konfigurieren.
2 Informationen zur Clientanforderung finden Sie in den Netzwerkablaufverfolgungsdaten.
Verwenden Sie die folgenden Methoden, um die SPN-Konfiguration zu beheben:
Wenn das Dienstkonto ordnungsgemäß konfiguriert ist, der Client jedoch einen falschen SPN angefordert hat, lesen Sie "Beheben eines inkonsistenten SPN".
Wenn das richtige Dienstkonto den SPN aufweist, aber der SPN nicht korrekt ist, entfernen Sie den falschen SPN, und fügen Sie dann den richtigen SPN hinzu. Ausführliche Informationen finden Sie unter Entfernen eines SPN aus einem Konto und Hinzufügen eines SPN zu einem Dienstkonto.
Wenn der SPN einem anderen Konto als dem richtigen Dienstkonto (benutzerdefiniertes Konto oder Computerkonto) zugewiesen ist, entfernen Sie den SPN aus diesen Konten. Siehe Entfernen eines SPN aus einem Konto.
Wenn Ihr Dienst ein benutzerdefiniertes Konto verwendet, aber das benutzerdefinierte Konto nicht über einen zugewiesenen SPN verfügt, fügen Sie den SPN hinzu. Ausführliche Informationen finden Sie unter Hinzufügen eines SPN zu einem Dienstkonto.
Wenn Ihr Dienst das Computerkonto verwendet, aber keiner der allgemeinen Dienste ist, die in diesem Artikel beschrieben werden, fügen Sie den SPN zum Computerkonto hinzu.
Entfernen eines SPN aus einem Konto
Um den SPN aus einem Konto zu entfernen, führen Sie den folgenden Befehl an einer Administrator-Eingabeaufforderung aus:
setspn -D <SPN> <AccountName>
Hinweis
In diesem Befehl stellt <SPN> den SPN dar, den Sie entfernen möchten. <AccountName> stellt das Konto (oder eines der Konten) dar, aus dem Sie den SPN entfernen möchten.
Hinzufügen eines SPN zu einem Dienstkonto
Um den SPN zu einem Konto hinzuzufügen, führen Sie den folgenden Befehl an einer Administrator-Eingabeaufforderung aus:
setspn -S \<SPN> \<AccountName>
Hinweis
In diesem Befehl stellt <SPN> den SPN dar, den Sie hinzufügen möchten. <AccountName> stellt das Konto (oder eines der Konten) dar, dem Sie den SPN hinzufügen möchten.
Inkonsistenten SPN beheben
Ermitteln Sie, welche Version des SPN korrekt ist: Entweder die version, die der Client angefordert hat, oder die version, die für das Dienstkonto konfiguriert ist.
Wenn der Client einen falschen SPN anfordert, überprüfen Sie die Informationen, die Ihr Client zum Erstellen eines SPN für eine Anforderung verwendet, und stellen Sie sicher, dass die Quellinformationen korrekt sind. DNS ist eine häufige Quelle dieser Informationen. Andere Clients (insbesondere nicht browserbezogene oder benutzerdefinierte Clients) verwenden möglicherweise zusätzlich zu DNS andere Quellen.
Wenn das Dienstkonto den falschen SPN verwendet, entfernen Sie den SPN aus dem Dienstkonto, und fügen Sie dann den richtigen SPN hinzu.
Mehr Informationen
Ein SPN verwendet das <Format ServiceClass>/<Host>:<Port>/,<ServiceName> und enthält die folgenden Komponenten:
- <ServiceClass> (erforderlich) stellt die Dienstklasse des Diensts dar.
- <Host> (erforderlich) stellt den Namen des Computers dar, auf dem der Dienst ausgeführt wird.
- <Port> (optional) stellt die vom Dienst verwendete Portnummer dar.
- <ServiceName> (optional) stellt den Namen des Diensts dar.
Weitere Informationen zum Formatieren von SPNs und zum Verwenden optionaler Parameter finden Sie unter Namensformate für eindeutige SPNs.