Freigeben über


SPN-Registrierung für eine Analysis Services-Instanz

gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Ein Dienstprinzipalname (Service Principal Name, SPN) identifiziert eine Dienstinstanz in einer Active Directory-Domäne eindeutig, wenn Kerberos verwendet wird, um Client- und Dienstidentitäten gegenseitig zu authentifizieren. Ein SPN ist dem Anmeldekonto zugeordnet, unter dem die Dienstinstanz ausgeführt wird.

Für Clientanwendungen, die über die Kerberos-Authentifizierung eine Verbindung mit Analysis Services herstellen, erstellen die Analysis Services-Clientbibliotheken einen SPN mithilfe des Hostnamens aus der Verbindungszeichenfolge und anderen bekannten Variablen, z. B. der Dienstklasse, die in einer beliebigen Version von Analysis Services behoben sind.

Damit die gegenseitige Authentifizierung eintritt, müssen die vom Client erstellten SPNs mit einem entsprechenden SPN-Objekt auf einem Active Directory-Domänencontroller (DC) übereinstimmen. Dies bedeutet, dass Sie möglicherweise mehrere SPNs für eine einzelne Analysis Services-Instanz registrieren müssen, um alle Möglichkeiten abzudecken, wie ein Benutzer den Hostnamen in einer Verbindungszeichenfolge angeben kann. Beispielsweise benötigen Sie wahrscheinlich zwei SPNs, um sowohl den vollqualifizierten Domänennamen (FQDN) eines Servers als auch den Kurzcomputernamen zu verarbeiten. Die ordnungsgemäße Registrierung des Analysis Services SPN ist für eine erfolgreiche Verbindung unerlässlich. Wenn der SPN nicht vorhanden, falsch formatiert oder dupliziert ist, schlägt die Verbindung fehl.

DIE SPN-Registrierung ist eine manuelle Aufgabe, die vom Analysis Services-Administrator ausgeführt wird. Im Gegensatz zum SQL Server-Datenbankmodul registriert Analysis Services seinen SPN beim Dienststart niemals automatisch. Die manuelle Registrierung ist erforderlich, wenn Analysis Services unter dem standardmäßigen virtuellen Konto, einem Domänenbenutzerkonto oder einem integrierten Konto ausgeführt wird, einschließlich einer Dienst-SID.

DIE SPN-Registrierung ist nicht erforderlich, wenn der Dienst unter einem vordefinierten verwalteten Dienstkonto ausgeführt wird, das von einem Domänenadministrator erstellt wurde. Beachten Sie, dass die Registrierung eines SPN abhängig von der Funktionalen Ebene Ihrer Domäne Domänenadministratorberechtigungen erfordern kann.

Tipp

Microsoft Kerberos Configuration Manager for SQL Server ist ein Diagnosetool zur Behebung Kerberos-bezogener Probleme mit der Verbindung mit SQL Server. Weitere Informationen finden Sie unter Microsoft Kerberos-Konfigurations-Manager für SQL Server.

Dieses Thema enthält folgende Abschnitte:

Wenn die SPN-Registrierung erforderlich ist

SPN-Format für Analysis Services

SPN-Registrierung für ein virtuelles Konto

SPN-Registrierung für ein Domänenkonto

SPN-Registrierung für ein integriertes Konto

SPN-Registrierung für eine benannte Instanz

SPN-Registrierung für einen SSAS-Cluster

SPN-Registrierung für SSAS-Instanzen, die für den HTTP-Zugriff konfiguriert sind

SPN-Registrierung für SSAS-Instanzen, die auf feste Ports lauschen

Wenn die SPN-Registrierung erforderlich ist

Jede Clientverbindung, die "SSPI=Kerberos" für die Verbindungszeichenfolge angibt, führt SPN-Registrierungsanforderungen für eine Analysis Services-Instanz ein.

Die SPN-Registrierung ist unter den folgenden Umständen erforderlich. Ausführlichere Informationen finden Sie unter Konfigurieren von Analysis Services für eingeschränkte Kerberos-Delegierung.

  • Die Identitätsdelegierung ist erforderlich, um die Benutzeridentität von der Clientanwendung oder dem Dienst der mittleren Ebene an Analysis Services zu übertragen. Die Identitätsdelegierung wird in der Regel verwendet, wenn berechtigungen oder Filter pro Benutzer für bestimmte Objekte definiert sind.

    Ein häufiges Szenario mit Identitätsdelegierung ist das Konfigurieren von Diensten auf mittlerer Ebene, z. B. Excel Services oder Reporting Services, für die eingeschränkte Delegierung, um einen Benutzer zu impersonifizieren, um Daten in Analysis Services abzurufen. Um dieses Verhalten zu unterstützen, müssen Sie einen Analysis Services-SPN als Zieldienst bereitstellen, wenn Sie Excel Services oder Reporting Services für eingeschränkte Delegierung konfigurieren.

  • Analysis Services delegiert eine Benutzeridentität beim Abrufen von Daten aus einer relationalen SQL Server-Datenbank für tabellarische Datenbanken mithilfe des DirectQuery-Modus. Dies ist das einzige Szenario, in dem Analysis Services die Benutzeridentität an einen anderen Dienst delegiert.

SPN-Format für Analysis Services

Verwenden Sie "setspn ", um einen SPN zu registrieren. Bei neueren Betriebssystemen wird setspn als Systemhilfsprogramm installiert. Weitere Informationen finden Sie unter SetSPN.

In der folgenden Tabelle werden die einzelnen Teile eines Analysis Services-SPN beschrieben.

Element Description
Dienstklasse MSOLAPSvc.3 identifiziert den Dienst als Analysis Services-Instanz. 3 ist ein Verweis auf die Version des XMLA-over-TCP/IP-Protokolls, das in Analysis Services-Übertragungen verwendet wird. Es steht nicht im Zusammenhang mit der Produkteinführung. MsOLAPSvc.3 ist daher die richtige Dienstklasse für SQL Server 2005, 2008, 2008 R2, 2012 und jede zukünftige Version von Analysis Services, bis das Protokoll selbst überarbeitet wird.
Hostname Gibt den Computer an, auf dem der Dienst ausgeführt wird. Dies kann ein vollqualifizierter Domänenname oder ein NetBIOS-Name sein. Sie sollten einen SPN für beide registrieren.

Achten Sie beim Registrieren eines SPN für den NetBIOS-Namen eines Servers darauf, SetupSPN -S dass Sie die Duplikatregistrierung überprüfen. NetBIOS-Namen sind in einer Gesamtstruktur nicht garantiert eindeutig, und wenn eine doppelte SPN-Registrierung vorhanden ist, schlägt die Verbindung fehl.

Für Analysis Services-Cluster mit Lastenausgleich sollte der Hostname der virtuelle Name sein, der dem Cluster zugewiesen ist.

Erstellen Sie niemals einen SPN mit der IP-Adresse. Kerberos verwendet die DNS-Auflösungsfunktionen der Domäne. Wenn Sie eine IP-Adresse angeben, wird diese Funktion umgangen.
Portnummer Obwohl die Portnummer Teil der SPN-Syntax ist, geben Sie beim Registrieren eines Analysis Services-SPN niemals eine Portnummer an. Das Doppelpunktzeichen ( : ) wird typischerweise verwendet, um eine Portnummer in der SPN-Standardsyntax bereitzustellen. Bei Analysis Services wird es verwendet, um den Instanznamen anzugeben. Bei einer Analysis Services-Instanz wird davon ausgegangen, dass der Port der Standardport (TCP 2383) oder ein Vom SQL Server-Browserdienst (TCP 2382) zugewiesener Port ist.
Instanzname Analysis Services ist ein replizierbarer Dienst, der mehrmals auf demselben Computer installiert werden kann. Jede Instanz wird über den Namen der Instanz identifiziert.

Ein Doppelpunkt ( : ) wird dem Instanznamen vorangestellt. Bei einem Hostcomputer namens SRV01 und einer benannten Instanz von SSAS-Tabular sollte der SPN beispielsweise SRV01:SSAS-Tabular sein.

Beachten Sie, dass sich die Syntax für die Angabe einer benannten Analysis Services-Instanz von denen unterscheidet, die von anderen SQL Server-Instanzen verwendet werden. Andere Dienste verwenden einen umgekehrten Schrägstrich ( \ ), um den Instanznamen in einem SPN anzufügen.
Dienstkonto Dies ist das Startkonto des MSSQLServerOLAPService Windows-Diensts. Dabei kann es sich um ein Windows-Domänenbenutzerkonto, ein virtuelles Konto, ein verwaltetes Dienstkonto (MANAGED Service Account, MSA) oder ein integriertes Konto handeln, z. B. eine SID pro Dienst, NetworkService oder LocalSystem. Ein Windows-Domänenbenutzerkonto kann als Domäne\Benutzer oder user@domain formatiert werden.

SPN-Registrierung für ein virtuelles Konto

Virtuelle Konten sind der Standardkontotyp für SQL Server-Dienste. Das virtuelle Konto ist NT Service\MSOLAPService für eine Standardinstanz und nt Service\MSOLAP$<instance-name> für eine benannte Instanz.

Wie der Name schon sagt, sind diese Konten in Active Directory nicht vorhanden. Ein virtuelles Konto ist nur auf dem lokalen Computer vorhanden. Beim Herstellen einer Verbindung mit externen Diensten, Anwendungen oder Geräten wird die Verbindung mit dem lokalen Computerkonto hergestellt. Aus diesem Grund ist eine SPN-Registrierung für Analysis Services, die unter einem virtuellen Konto ausgeführt wird, tatsächlich eine SPN-Registrierung für das Computerkonto.

Beispielsyntax für eine Standardinstanz, die als NT Service\MSOLAPService ausgeführt wird

In diesem Beispiel wird die Setspnsyntax für die Standardmäßiginstanz von Analysis Services gezeigt, die unter dem standardmäßigen virtuellen Konto ausgeführt wird. In diesem Beispiel lautet der Computerhostname AW-SRV01. Wie bereits erwähnt, muss die SPN-Registrierung das Computerkonto anstelle des virtuellen Kontos NT Service\MSOLAPService angeben.

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

Hinweis

Denken Sie daran, zwei SPN-Registrierungen zu erstellen, eine für den NetBIOS-Hostnamen und eine Sekunde für einen vollqualifizierten Domänennamen des Hosts. Unterschiedliche Clientanwendungen verwenden beim Herstellen einer Verbindung mit Analysis Services unterschiedliche Hostnamenkonventionen. Durch die Verwendung von zwei SPN-Registrierungen wird sichergestellt, dass beide Versionen des Hostnamens berücksichtigt werden.

Beispielsyntax für eine benannte Instanz, die als NT Service\MSOLAP$<instance-name ausgeführt wird>

In diesem Beispiel wird die Setspnsyntax für eine benannte Instanz gezeigt, die unter dem standardmäßigen virtuellen Konto ausgeführt wird. In diesem Beispiel lautet der Computerhostname AW-SRV02, und der Instanzname ist AW-FINANCE. Auch hier handelt es sich um das Computerkonto, das für den SPN angegeben ist, und nicht um das virtuelle Konto NT Service\MSOLAP$<instance-name>.

Setspn -s MSOLAPSvc.3/AW-SRV02.AdventureWorks.com:AW-FINANCE AW-SRV02  

SPN-Registrierung für ein Domänenkonto

Die Verwendung eines Domänenkontos zum Ausführen einer Analysis Services-Instanz ist eine gängige Methode.

Für Analysis Services-Instanzen, die in einem Netzwerk- oder Hardwarelastenausgleichscluster ausgeführt werden, ist ein Domänenkonto erforderlich, wobei jede Instanz im Cluster unter demselben Domänenkonto ausgeführt wird.

Beispielsyntax für eine Standardinstanz, die als Domänenbenutzer ausgeführt wird

In diesem Beispiel wird die Setspn-Syntax für die Standardinstanz von Analysis Services gezeigt, die unter einem Domänenbenutzerkonto, SSAS-Service, in der AdventureWorks-Domäne ausgeführt wird.

Setspn -s msolapsvc.3/AW-SRV01.Adventureworks.com AdventureWorks\SSAS-Service  

Tipp

Überprüfen Sie, ob der SPN für den Analysis Services-Server erstellt wurde, indem Sie ausführen Setspn -L <domain account> oder Setspn -L <machinename>, je nachdem, wie der SPN registriert wurde. MSOLAPSVC.3/<hostname> sollte in der Liste erscheinen.

SPN-Registrierung für ein integriertes Konto

Obwohl diese Vorgehensweise nicht empfohlen wird, werden ältere Analysis Services-Installationen manchmal so konfiguriert, dass sie unter integrierten Konten wie Netzwerkdienst, lokaler Dienst oder lokales System ausgeführt werden.

Beispielsyntax für eine Standardinstanz, die unter einem integrierten Konto ausgeführt wird

Die SPN-Registrierung für einen Dienst, der unter einem integrierten Konto oder einer SID pro Dienst ausgeführt wird, entspricht der SPN-Syntax, die bei virtuellen Konten verwendet wird. Verwenden Sie anstelle des Kontonamens das Computerkonto:

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

SPN-Registrierung für eine benannte Instanz

Standardmäßig verwenden benannte Instanzen von Analysis Services dynamische Portzuweisungen, die vom SQL Server-Browserdienst erkannt werden. Sie müssen nur einen NetBIOS- und FQDN-SPN für die benannte Instanz erstellen, um Kerberos-Verbindungen zu aktivieren.

Beispielsyntax für eine benannte Instanz, die als Domänenbenutzer ausgeführt wird

Das folgende Beispiel zeigt die setspn-Syntax für eine benannte Instanz von Analysis Services AW-FINANCE, die unter einem Domänenbenutzerkonto namens SSAS-Service in der AdventureWorks-Domäne ausgeführt wird. In diesem Beispiel lautet der Computerhostname AW-SRV01.

FQDN SPN: Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com:AW-FINANCE AdventureWorks\SSAS-Service 

NetBIOS SPN: Setspn -s MSOLAPSvc.3/AW-SRV01:AW-FINANCE AdventureWorks\SSAS-Service 

Hinweis

Wenn Sie Ihre benannte Instanz so konfiguriert haben, dass sie auf einen festen Port lauscht, führen Sie die folgenden Schritte aus, um Kerberos-Verbindungen von Ihrer Clientanwendung zu verwenden:

  1. Starten Sie den SQL Server-Browserdienst.
  2. Wenn Sie eine Portnummer in Ihrer Verbindungszeichenfolge verwenden, entfernen Sie die Portnummer, fügen Sie den Instanznamen hinzu, und lassen Sie die Anwendung die Portnummer über den SQL Server-Browserdienst empfangen.

Tipp

Überprüfen Sie, ob der SPN für die benannte SQL-Instanz erstellt wurde, indem Sie den Setspn -L <domain account>-Befehl ausführen oder Setspn -L <machinename>, je nachdem, wie der SPN registriert wurde.

Microsoft Kerberos Configuration Manager für SQL Server ist ein Diagnosetool, mit dem Kerberos-bezogene Konnektivitätsprobleme mit SQL Server behoben werden können. Dieses Tool kann dabei helfen, potenzielle Probleme in SPNs und Delegierungen zu identifizieren und automatisierte Verfahren zur Behebung der identifizierten Probleme bereitzustellen. Weitere Informationen finden Sie unter Microsoft Kerberos-Konfigurations-Manager für SQL Server.

SPN-Registrierung für einen SSAS-Cluster

Bei Analysis Services-Failoverclustern sollte der Hostname der virtuelle Name sein, der dem Cluster zugewiesen ist. Dies ist der NAME des SQL Server-Netzwerks, der während des SQL Server-Setups angegeben wird, wenn Sie Analysis Services auf einem vorhandenen WSFC installiert haben. Sie finden diesen Namen in Active Directory. Sie finden ihn auch auf der Registerkarte Failovercluster-Manager | Rollen | Ressourcen. Der Servername auf der Registerkarte Ressourcen sollte im SPN-Befehl als "virtueller Name" verwendet werden.

SPN-Syntax für einen Analysis Services-Cluster

Setspn -s msolapsvc.3/<virtualname.FQDN > <domain user account>  

Denken Sie daran, dass Knoten in einem Analysis Services-Cluster den Standard-TCP-Port (2383) verwenden und unter demselben Domänenbenutzerkonto ausführen müssen, damit jeder Knoten dieselbe SID hat. Weitere Informationen finden Sie unter How to Cluster SQL Server Analysis Services .

SPN-Registrierung für SSAS-Instanzen, die für den HTTP-Zugriff konfiguriert sind

Je nach Lösungsanforderungen haben Sie möglicherweise Analysis Services für den HTTP-Zugriff konfiguriert. Wenn Ihre Lösung IIS als Komponente der mittleren Ebene enthält und die Kerberos-Authentifizierung eine Lösungsanforderung ist, müssen Sie möglicherweise manuell einen SPN für IIS registrieren. Weitere Informationen finden Sie unter "Konfigurieren Sie die Einstellungen auf dem Computer, auf dem IIS ausgeführt wird" im Abschnitt Wie man SQL Server 2008 Analysis Services und SQL Server 2005 Analysis Services konfiguriert, um Kerberos-Authentifizierung zu verwenden.

In Bezug auf die SPN-Registrierung für die Analysis Services-Instanz gibt es keinen Unterschied zwischen einer Instanz, die für TCP oder HTTP konfiguriert ist. Die Verbindung mit Analysis Services von IIS mithilfe der MSMDPUMP ISAPI-Erweiterung ist immer TCP.

Dies bedeutet, dass Sie die Anweisungen aus vorherigen Abschnitten für die Standardinstanz oder benannte Instanz verwenden können, um den SPN zu registrieren. Achten Sie beim Angeben des Hostnamens darauf, den Hostnamen zu verwenden, den Sie in der datei msmdpump.ini angegeben haben, wenn Sie den Dienst für den HTTP-Zugriff konfiguriert haben.

Weitere Informationen zum HTTP-Zugriff finden Sie unter Configure HTTP Access to Analysis Services on Internet Information Services (IIS) 8.0.

SPN-Registrierung für SSAS-Instanzen, die auf feste Ports lauschen

Sie können keine Portnummer für eine Analysis Services-SPN-Registrierung angeben. Die Analysis Services-SPN-Registrierung kann nur den Instanznamen verwenden. Wenn Sie Analysis Services als Standardinstanz installiert und für die Überwachung eines nicht standardmäßigen Ports konfiguriert haben, können Sie keine Verbindung mit dieser Instanz mithilfe von Kerberos herstellen. Sie müssen sie so konfigurieren, dass der Standardport (TCP 2383) überwacht wird, um Kerberos-Verbindungen mit dieser Instanz zu aktivieren. Eine Standardinstanz von Analysis Services, die an einem nicht standardmäßigen Port aktiv ist, kann nur NTLM-Verbindungen akzeptieren. Für benannte Instanzen müssen Sie den SQL Server-Browserdienst starten und Instanznamen in Ihren Verbindungszeichenfolgen anstelle von Portnummern verwenden.

Eine Analysis Services-Instanz kann nur auf einen einzelnen Port lauschen. Die Verwendung mehrerer Ports wird nicht unterstützt. Weitere Informationen zur Portkonfiguration finden Sie unter Konfigurieren der Windows-Firewall zum Zulassen des Analysis Services-Zugriffs.

Siehe auch

Microsoft BI-Authentifizierung und Identitätsdelegierung
Gegenseitige Authentifizierung mithilfe von Kerberos
Service Principal Names (SPNs) SetSPN-Syntax (Setspn.exe)
SetSPN
Schritt-für-Schritt-Anleitung für Dienstkonten
Konfigurieren von Windows-Dienstkonten und -Berechtigungen
Verwenden von SPNs beim Konfigurieren von Webanwendungen, die in Internetinformationsdienste gehostet werden
Neuerungen in den Dienstkonten
Konfigurieren der Kerberos-Authentifizierung für SharePoint 2010-Produkte (Whitepaper)