Namensformate für eindeutige SPNs
Ein SPN muss in der Gesamtstruktur eindeutig sein, in der er registriert ist. Wenn sie nicht eindeutig ist, schlägt die Authentifizierung fehl. Die SPN-Syntax besteht aus vier Elementen: zwei erforderliche Elemente und zwei zusätzliche Elemente, die Sie bei Bedarf verwenden können, um einen eindeutigen Namen zu erstellen, wie in der folgenden Tabelle aufgeführt.
<service class>/<host>:<port>/<service name>
Element | Beschreibung |
---|---|
"<Serviceklasse>" | Eine Zeichenfolge, die die allgemeine Dienstklasse identifiziert; Beispiel: "SqlServer". Es gibt bekannte Dienstklassennamen, z. B. "www" für einen Webdienst oder "ldap" für einen Verzeichnisdienst. Im Allgemeinen kann dies eine beliebige Zeichenfolge sein, die für die Dienstklasse eindeutig ist. Beachten Sie, dass die SPN-Syntax einen Schrägstrich (/) verwendet, um Elemente zu trennen, sodass dieses Zeichen nicht in einem Dienstklassennamen angezeigt werden kann. |
"<host>" | Der Name des Computers, auf dem der Dienst ausgeführt wird. Dies kann ein vollqualifizierter DNS-Name oder ein NetBIOS-Name sein. Beachten Sie, dass NetBIOS-Namen nicht garantiert in einer Gesamtstruktur eindeutig sind, daher ist ein SPN, der einen NetBIOS-Namen enthält, möglicherweise nicht eindeutig. |
"<Port>" | Eine optionale Portnummer, um zwischen mehreren Instanzen derselben Dienstklasse auf einem einzelnen Hostcomputer zu unterscheiden. Lassen Sie diese Komponente aus, wenn der Dienst den Standardport für die Dienstklasse verwendet. |
"<Dienstname>" | Ein optionaler Name, der in den SPNs eines replizierbaren Diensts verwendet wird, um die Daten oder Dienste zu identifizieren, die vom Dienst oder der vom Dienst bereitgestellten Domäne bereitgestellt werden. Diese Komponente kann eines der folgenden Formate aufweisen:
|
Die Komponenten, die in den SPNs eines Diensts vorhanden sind, hängen davon ab, wie der Dienst identifiziert und repliziert wird. Es gibt zwei grundlegende Szenarien: hostbasierte Dienste und replizierbare Dienste.
Hostbasierte Dienste
Bei einem hostbasierten Dienst wird die Komponente "<Dienstname>" ausgelassen, da der Dienst eindeutig durch die Dienstklasse und den Namen des Hostcomputers identifiziert wird, auf dem der Dienst installiert ist.
<service class>/<host>
Die Dienstklasse allein reicht aus, um die vom Dienst bereitgestellten Features für Clients zu identifizieren. Sie können Instanzen der Dienstklasse auf vielen Computern installieren, und jede Instanz stellt Dienste bereit, die mit ihrem Hostcomputer identifiziert werden. FTP und Telnet sind Beispiele für hostbasierte Dienste. Die SPNs einer hostbasierten Dienstinstanz können die Portnummer enthalten, wenn der Dienst einen nicht standardmäßigen Port verwendet oder mehrere Instanzen des Diensts auf dem Host vorhanden sind.
<service class>/<host>:<port>
Replizierbare Dienste
Für einen replizierbaren Dienst kann es eine oder mehrere Instanzen des Diensts (Replikate) geben, und Clients unterscheiden nicht, mit welchem Replikat sie eine Verbindung herstellen, da jeder denselben Dienst bereitstellt. Die SPNs für jedes Replikat weisen die gleiche<Dienstklasse>" und "<Dienstnamen>" Komponenten auf, wobei "<Dienstname>" die vom Dienst bereitgestellten Features genauer identifiziert. Nur die "<Host->" und optionale "<Port>" Komponenten variieren von SPN zu SPN.
<service class>/<host>:<port>/<service name>
Ein Beispiel für einen replizierbaren Dienst wäre eine Instanz eines Datenbankdiensts, der Zugriff auf eine angegebene Datenbank ermöglicht. In diesem Fall identifiziert "<Dienstklasse>" die Datenbankanwendung und "<Dienstname>" identifiziert die spezifische Datenbank. "<Dienstname>" könnte der Distinguished Name eines Dienstverbindungspunkts (SCP) sein, der Verbindungsdaten für die Datenbank enthält.
MyDBService/host1.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
Wenn Clients den NetBIOS-Namen zum Verfassen des SPN eines Diensts verwenden, muss jedes Replikat auch einen SPN registrieren, der den NetBIOS-Namen enthält.
MyDBService/host1/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3/CN=hrdb,OU=mktg,DC=example,DC=com
Ein weiteres Beispiel für einen replizierbaren Dienst ist ein Dienst, der Dienste für eine gesamte Domäne bereitstellt. In diesem Fall ist die Komponente "<Dienstname>" der DNS-Name der Domäne, die bereitgestellt wird. Ein Kerberos-KDC ist ein Beispiel für diesen Typ replizierbarer Dienst.
Beachten Sie folgendes: Wenn sich der DNS-Name eines Computers ändert, aktualisiert das System das "<Host->"-Element für alle registrierten SPNs für diesen Host in der Gesamtstruktur.