Inscription du nom SPN pour une instance Analysis Services

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Un nom de principal de service (SPN) identifie de manière unique un instance de service dans un domaine Active Directory lorsque Kerberos est utilisé pour authentifier mutuellement les identités de client et de service. Un SPN est associé au compte d'ouverture de session sous lequel s'exécute l'instance du service.

Pour les applications clientes qui se connectent à Analysis Services via l'authentification Kerberos, les bibliothèques clientes Analysis Services créent un nom SPN à l'aide du nom d'hôte de la chaîne de connexion et d'autres variables connues, telles que la classe de service, qui sont résolues dans n'importe quelle version donnée d'Analysis Services.

Pour que l'authentification mutuelle ait lieu, les noms SPN construits par le client doivent correspondre à un objet SPN associé sur un contrôleur de domaine Active Directory (DC). Cela signifie que vous pouvez avoir besoin d'inscrire plusieurs SPN pour qu'une seule instance d'Analysis Services traite toutes les méthodes auxquelles un utilisateur peut recourir pour spécifier le nom d'hôte sur une chaîne de connexion. Par exemple, vous avez peut-être besoin de deux noms SPN pour gérer à la fois le nom de domaine complet (FQDN) d'un serveur, ainsi que le nom d'ordinateur abrégé. Enregistrer correctement le nom SPN Analysis Services est une étape essentielle pour la réussite d'une connexion. Si le SPN est inexistant, incorrect ou en double, la connexion échoue.

L'inscription du SPN est une tâche effectuée manuellement par l'administrateur Analysis Services. Contrairement au moteur de base de données SQL Server, Analysis Services n'inscrit jamais automatiquement son SPN au démarrage du service. L'inscription manuelle est nécessaire lorsque Analysis Services s'exécute sous le compte virtuel par défaut, un compte d'utilisateur de domaine ou un compte intégré, y compris un SID par service.

L'inscription du SPN n'est pas nécessaire si le service s'exécute sous un compte de service administré prédéfini créé par un administrateur de domaine. Notez que selon le niveau fonctionnel de votre domaine, l'inscription d'un nom SPN peut nécessiter des autorisations d'administrateur de domaine.

Conseil

Microsoft pour SQL Server est un outil de diagnostic qui permet de dépanner les problèmes de connexion que rencontre Kerberos avec SQL Server. Pour plus d'informations, consultez Gestionnaire de configuration de Microsoft Kerberos pour SQL Server.

Cette rubrique contient les sections suivantes :

Quand l’inscription spN est requise

Format SPN pour Analysis Services

Inscription du SPN pour un compte virtuel

Inscription spN pour un compte de domaine

Inscription spN pour un compte intégré

Inscription spN pour un instance nommé

Inscription du nom SPN pour un cluster SSAS

Inscription SPN pour les instances SSAS configurées pour l’accès HTTP

Inscription du nom SPN pour les instances SSAS à l'écoute sur des ports fixes

Circonstances dans lesquelles une inscription du SPN est requise

Toute connexion cliente qui spécifie « SSPI=Kerberos » sur le chaîne de connexion introduit les exigences d’inscription spN pour un instance Analysis Services.

L'inscription du SPN est requise dans les cas suivants. Pour des informations plus détaillées, consultez Configure Analysis Services for Kerberos constrained delegation.

  • La délégation d'identité est nécessaire pour permettre la circulation de l'identité des utilisateurs à partir de l'application cliente ou du service de niveau intermédiaire vers Analysis Services. La délégation d'identité est généralement utilisée lorsque des filtres ou des autorisations par utilisateur sont définis sur des objets spécifiques.

    Un scénario courant impliquant la délégation d'identité consiste à configurer des services de niveau intermédiaire, comme Excel Services ou Reporting Services, pour une délégation contrainte à des fins d'emprunt de l'identité d'un utilisateur lors de la récupération de données dans Analysis Services. Pour prendre en charge ce comportement, vous devez fournir un SPN Analysis Services en tant que service de destination, lors de la configuration d'Excel Services ou de Reporting Services pour la délégation contrainte.

  • Analysis Services délègue une identité d'utilisateur lors de la récupération de données depuis une base de données relationnelle SQL Server pour les bases de données tabulaires à l'aide du mode DirectQuery. Il s'agit du seul scénario dans lequel Analysis Services délègue l'identité de l'utilisateur à un autre service.

Format SPN pour Analysis Services

Utilisez setspn pour inscrire un nom SPN. Sur les systèmes d'exploitation plus récents, setspn est installé en tant qu'utilitaire système. Pour plus d'informations, consultez SetSPN.

Le tableau suivant décrit chaque partie d'un nom SPN d'Analysis Services.

Élément Description
Classe du service MSOLAPSvc.3 identifie le service en tant qu'instance Analysis Services. Le .3 est une référence à la version du protocole XMLA-over-TCP/IP utilisé dans des transmissions Analysis Services. Il n’est pas lié à la mise en production du produit. Par conséquent, MSOLAPSvc.3 est la classe de service appropriée pour les SQL Server 2005, 2008, 2008 R2, 2012 et toute version future d’Analysis Services jusqu’à ce que le protocole lui-même soit révisé.
Host-name Identifie l'ordinateur sur lequel s'exécute le service. Ce peut être un nom de domaine complet ou un nom NetBIOS. Vous devez inscrire un SPN pour les deux noms.

Lors de l'inscription d'un SPN pour le nom NetBIOS d'un serveur, veillez à utiliser SetupSPN -S pour éviter toute inscription en double. Il n’est pas garanti que les noms NetBIOS soient uniques dans une forêt, et le fait d’avoir une inscription SPN en double entraîne l’échec de la connexion.

Pour les clusters à charge équilibrée Analysis Services, le nom d'hôte doit être le nom virtuel affecté au cluster.

Ne créez jamais de nom SPN à l'aide de l'adresse IP. Kerberos utilise les fonctionnalités de résolution DNS du domaine. La spécification d'une adresse IP ignore cette fonctionnalité.
Port-number Bien que le numéro de port fasse partie de la syntaxe de SPN, vous ne spécifiez jamais un numéro de port lors de l'inscription d'un nom SPN Analysis Services. Les deux-points (:), généralement utilisés pour fournir un numéro de port dans la syntaxe standard de SPN, permettent à Analysis Services de spécifier le nom de l'instance. Pour une instance d'Analysis Services, le port est supposé être le port par défaut (TCP 2383) ou un port affecté par le service SQL Server Browser (TCP 2382).
Instance-name Analysis Services est un service réplicable qui peut être installé plusieurs fois sur le même ordinateur. Chaque instance est identifiée par son nom d'instance.

Le nom de l'instance est préfixé par un signe deux-points (:). Si l'on prend l'exemple d'un ordinateur hôte appelé SRV01 et d'une instance nommée SSAS-tabulaire, le SPN doit être SRV01:SSAS-tabulaire.

Notez que la syntaxe pour spécifier une instance nommée d'Analysis Services est différente de celle utilisée par d'autres instances de SQL Server. D'autres services utilisent une barre oblique inverse (\) pour ajouter le nom de l'instance dans un SPN.
Compte de service Il s'agit du compte de démarrage du service Windows MSSQLServerOLAPService . Ce peut être un compte d'utilisateur de domaine Windows, un compte virtuel, un compte de service administré ou un compte intégré comme un SID par service, un NetworkService, ou un LocalSystem. Un compte d'utilisateur de domaine Windows peut présenter le format domaine\utilisateur ou utilisateur@domaine.

Inscription du nom SPN pour un compte virtuel

Les comptes virtuels correspondent au type de compte par défaut des services SQL Server. Le compte virtuel est NT Service\MSOLAPService pour un instance par défaut et NT Service\MSOLAP$<instance-name> pour un instance nommé.

Comme son nom l'indique, ce type de compte n'existe pas dans Active Directory. Un compte virtuel n'existe que sur l'ordinateur local. Lors de la connexion à des périphériques, des applications ou des services externes, la connexion est établie à l'aide du compte d'ordinateur local. Pour cette raison, une inscription du nom SPN pour Analysis Services s'exécutant sous un compte virtuel correspond en fait à une inscription SPN pour le compte d'ordinateur.

Exemple de syntaxe pour une instance par défaut exécutée en tant NT Service\MSOLAPService

Cet exemple illustre la syntaxe setspn pour une instance Analysis Services par défaut s'exécutant sous le compte virtuel par défaut. Dans cet exemple, le nom d’hôte de l’ordinateur est AW-SRV01. Comme indiqué, l’inscription du nom SPN doit spécifier le compte d’ordinateur à la place du compte virtuel, NT Service\MSOLAPService.

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

Notes

Pensez à créer deux inscriptions SPN, l'une pour le nom d'hôte NetBIOS et l'autre pour un nom de domaine complet de l'hôte. Différentes applications clientes utilisent des conventions de nom d'hôte différentes lors de la connexion à Analysis Services. Le fait de disposer de deux inscriptions SPN permet de s'assurer que les deux versions du nom d'hôte sont prises en compte.

Exemple de syntaxe pour un instance nommé s’exécutant en tant que service NT\MSOLAP$<instance-name>

Cet exemple illustre la syntaxe setspn pour une instance nommée s'exécutant sous le compte virtuel par défaut. Dans cet exemple, le nom d’hôte de l’ordinateur est AW-SRV02 et le nom de l’instance AW-FINANCE. Là encore, c’est le compte d’ordinateur qui est spécifié pour le SPN, plutôt que le compte virtuel NT Service\MSOLAP$<instance-name>.

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

Inscription du nom SPN pour un compte de domaine

L'utilisation d'un compte de domaine pour exécuter une instance Analysis Services est une pratique courante.

Pour les instances Analysis Services qui s'exécutent dans un cluster à charge réseau ou matériel équilibrée, un compte de domaine est requis, chaque instance du cluster s'exécutant sous le même compte de domaine.

Exemple de syntaxe pour une instance par défaut exécutée sous un utilisateur de domaine

Cet exemple illustre la syntaxe setspn pour une instance Analysis Services par défaut s’exécutant sous un compte d’utilisateur de domaine, SSAS-Service, dans le domaine AdventureWorks.

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

Conseil

Vérifiez si le SPN a été créé pour le serveur Analysis Services en exécutant Setspn -L <domain account> ou Setspn -L <machinename>, selon la manière dont le nom SPN a été inscrit. Vous devez voir MSOLAPSVC.3/<hostname> dans la liste.

Inscription du nom SPN pour un compte intégré

Bien que cette pratique ne soit pas recommandée, les installations Analysis Services plus anciennes sont parfois configurées pour s'exécuter sous des comptes intégrés comme Service réseau, Service local ou Système local.

Exemple de syntaxe pour une instance par défaut exécutée sous un compte intégré

L'inscription du nom SPN pour un service s'exécutant sous un compte intégré ou un SID par service reprend la même syntaxe SPN que celle utilisée pour le compte virtuel. Mais à la place du nom du compte, utilisez le compte d'ordinateur :

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

Inscription du nom SPN pour une instance nommée

Par défaut, les instances nommées d’Analysis Services utilisent des affectations de ports dynamiques détectées par le service SQL Server Browser. Il vous suffit de créer un nom de service NetBIOS et un nom de domaine complet pour le instance nommé afin d’activer les connexions Kerberos.

Exemple de syntaxe pour un instance nommé s’exécutant en tant qu’utilisateur de domaine

L’exemple suivant montre la setspn syntaxe d’Analysis Services nommée instance AW-FINANCE s’exécutant sous un compte d’utilisateur de domaine, SSAS-Service, dans le domaine AdventureWorks. Dans cet exemple, le nom d'hôte de l'ordinateur est 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 

Notes

Si vous avez configuré votre instance nommée pour écouter sur un port fixe, procédez comme suit pour utiliser les connexions Kerberos à partir de votre application cliente :

  1. Démarrez le service SQL Server Browser.
  2. Si vous utilisez un numéro de port dans votre chaîne de connexion, supprimez le numéro de port, ajoutez le nom instance et laissez l’application recevoir le numéro de port via le service SQL Server Browser.

Conseil

Vérifiez si le SPN a été créé pour le sql nommé instance en exécutant la Setspn -L <domain account> commande ouSetspn -L <machinename>, selon la façon dont le SPN a été inscrit.

Microsoft pour SQL Server est un outil de diagnostic qui permet de dépanner les problèmes de connexion que rencontre Kerberos avec SQL Server. Cet outil peut vous aider à identifier les problèmes potentiels dans les spN et les délégations et fournir des procédures automatisées pour résoudre les problèmes identifiés. Pour plus d'informations, consultez Gestionnaire de configuration de Microsoft Kerberos pour SQL Server.

Inscription du nom SPN pour un cluster SSAS

Pour les clusters de basculement Analysis Services, le nom d'hôte doit être le nom virtuel affecté au cluster. C'est le nom du réseau SQL Server, spécifié pendant l'installation de SQL Server lorsque vous avez installé Analysis Services sur un WSFC existant. Ce nom se trouve dans Active Directory. Vous pouvez également le trouver sous l’ongletRessourcesdu rôle | gestionnaire | du cluster de basculement. Le nom du serveur sous l’onglet Ressources est celui qui doit être utilisé comme « nom virtuel » dans la commande SPN.

Syntaxe du SPN pour un cluster Analysis Services

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

N'oubliez pas que des nœuds dans un cluster Analysis Services sont requis pour utiliser le port par défaut (TCP 2383) et s'exécutent sous le même compte d'utilisateur de domaine afin que chaque nœud présente le même SID. Pour plus d'informations, consultez Procédure de mise en cluster de SQL Server Analysis Services .

Inscription du nom SPN pour les instances SSAS configurées pour l'accès HTTP

Selon les spécifications de la solution, vous pouvez avoir configuré Analysis Services pour l'accès HTTP. Si votre solution contient IIS en tant que composant de niveau intermédiaire et que l'authentification Kerberos est une condition de la solution, vous devrez peut-être inscrire manuellement un nom SPN pour IIS. Pour plus d’informations, consultez « Configurer les paramètres sur l’ordinateur exécutant IIS » dans Comment configurer SQL Server 2008 Analysis Services et SQL Server 2005 Analysis Services pour utiliser l’authentification Kerberos.

En termes d'inscription du SPN pour l'instance Analysis Services, il n'existe aucune différence entre une instance configurée pour le protocole TCP ou HTTP. La connexion à Analysis Services depuis IIS, à l'aide de l'extension MSMDPUMP ISAPI, est toujours TCP.

Cela signifie que vous pouvez utiliser les instructions des sections précédentes pour l'instance par défaut ou nommée afin d'inscrire le nom SPN. En spécifiant le nom d'hôte, veillez à utiliser le nom d'hôte spécifié dans le fichier msmdpump.ini au moment de la configuration du service pour l'accès HTTP.

Pour plus d’informations sur l’accès HTTP, consultez Configurer l’accès HTTP à Analysis Services sur Internet Information Services (IIS) 8.0.

Inscription du nom SPN pour les instances SSAS à l'écoute sur des ports fixes

Vous ne pouvez pas spécifier de numéro de port sur une inscription de SPN Analysis Services. L’inscription du SPN Analysis Services ne peut utiliser que instance nom. Si vous avez installé Analysis Services comme instance par défaut et que vous l’avez configuré pour écouter sur un port autre que celui par défaut, vous ne pouvez pas vous connecter à ce instance à l’aide de Kerberos. Vous devez le configurer pour écouter sur le port par défaut (TCP 2383) afin d’activer les connexions Kerberos à ce instance. Une instance par défaut d’Analysis Services à l’écoute sur un port autre que le port par défaut peut uniquement accepter les connexions NTLM. Pour les instances nommées, vous devez démarrer SQL Server service Browser et utiliser des noms instance dans vos chaînes de connexion au lieu des numéros de port.

Une instance Analysis Services ne peut être à l'écoute que sur un port unique. L’utilisation de plusieurs ports n’est pas prise en charge. Pour plus d'informations sur la configuration du port, consultez Configure the Windows Firewall to Allow Analysis Services Access.

Voir aussi

Authentification et délégation d'identité Microsoft BI
Authentification mutuelle à l'aide de Kerberos
Noms de principaux du service (SPN), syntaxe SetSPN (Setspn.exe)
Setspn
Guide pas à pas des comptes de service (éventuellement en anglais)
Configurer les comptes de service Windows et les autorisations
Comment utiliser des SPN quand vous configurez des applications web hébergées sur les services Internet (IIS)
Nouveautés des comptes de service
Configurer l'authentification Kerberos pour les produits SharePoint 2010 (livre blanc)