Configurer l’authentification unique basée sur Kerberos du service Power BI vers des sources de données locales

Quand l’authentification unique est activée, les rapports et les tableaux de bord Power BI actualisent facilement les données à partir des sources locales, tout en respectant les autorisations de niveau utilisateur qui sont configurées sur ces sources. Utilisez la délégation Kerberos contrainte pour activer la connectivité d’authentification unique sans interruption.

Cet article décrit les étapes à suivre pour Configurer l’authentification unique basée sur Kerberos du service Power BI vers des sources de données locales.

Prérequis

Plusieurs éléments doivent être configurés pour qu’une délégation Kerberos contrainte fonctionne correctement, notamment les *noms de principal du service (SPN) et les paramètres de délégation sur les comptes de service.

Notes

L’utilisation de l’alias DNS avec SSO n’est pas prise en charge.

Structure de la configuration

Les étapes nécessaires à la configuration de l’authentification unique de la passerelle sont décrites ci-dessous.

  1. Effectuez toutes les étapes de la Section 1 : Configuration de base.

  2. Selon votre environnement Active Directory et les sources de données utilisées, vous devrez peut-être effectuer une partie ou la totalité de la configuration décrite dans la Section 2 : Configuration spécifique à l’environnement.

    Les scénarios possibles qui peuvent nécessiter une configuration supplémentaire sont énumérés ci-dessous :

    Scénario Accéder à
    Votre environnement Active Directory est renforcé en matière de sécurité. Ajouter un compte de service de passerelle au groupe d’accès et d’autorisation Windows
    Le compte de service de la passerelle et les comptes d’utilisateur pour lesquels la passerelle se fera passer se trouvent dans des domaines ou des forêts distincts. Ajouter un compte de service de passerelle au groupe d’accès et d’autorisation Windows
    Vous n’avez pas configuré Azure AD Connect, et l’UPN utilisé dans Power BI pour les utilisateurs ne correspond pas à l’UPN dans votre environnement Active Directory local. Définir les paramètres de configuration de mappage d’utilisateur sur la machine de la passerelle
    Vous envisagez d’utiliser une source de données SAP HANA avec l’authentification unique. Effectuer les étapes de configuration spécifiques à la source de données
    Vous prévoyez d’utiliser une source de données SAP BW avec l’authentification unique. Effectuer les étapes de configuration spécifiques à la source de données
    Vous prévoyez d’utiliser une source de données Teradata avec l’authentification unique. Effectuer les étapes de configuration spécifiques à la source de données
  3. Validez votre configuration comme décrit dans la Section 3 : Valider la configuration pour vous assurer que l’authentification unique est correctement configurée.

Section 1 : Configuration de base

Étape 1 : Installer et configurer la passerelle de données locale Microsoft

La passerelle de données locale prend en charge la mise à niveau sur place et la prise de contrôle des paramètres de passerelles existantes.

Étape 2 : Obtenir des droits d’administrateur de domaine pour configurer les noms de principal du service (SetSPN) et les paramètres de la délégation Kerberos contrainte

Pour configurer les noms de principal du service et les paramètres de la délégation Kerberos, un administrateur de domaine doit éviter d’accorder des droits à une personne qui ne dispose pas de droits d’administrateur de domaine. La section suivante explique plus en détail les étapes de configuration recommandées.

Étape 3 : Configurer le compte de service de la passerelle

L’option A ci-dessous est la configuration recommandée, sauf si vous avez configuré Azure AD Connect et que les comptes d’utilisateurs sont synchronisés. Dans ce cas, l’option B est recommandée.

Option A : Exécuter le service Windows de passerelle en tant que compte de domaine avec le nom de principal du service

Dans une installation standard, la passerelle s’exécute en tant que compte de service local à la machine, NT Service\PBIEgwService.

Compte de service local à la machine

Pour activer une délégation Kerberos contrainte, la passerelle doit s’exécuter en tant que compte de domaine, sauf si votre instance Azure Active Directory (Azure AD) est déjà synchronisée avec votre instance Active Directory locale (avec Azure AD DirSync/Connect). Pour passer à un compte de domaine, consultez Changer le compte de service de passerelle.

Configurer un nom de principal du service pour le compte de service de passerelle

Tout d’abord, déterminez si un nom de principal du service a déjà été créé pour le compte de domaine utilisé comme compte de service de passerelle :

  1. En tant qu’administrateur de domaine, lancez le composant MMC (Microsoft Management Console) Utilisateurs et ordinateurs Active Directory.

  2. Dans le volet gauche, cliquez avec le bouton droit sur le domaine, sélectionnez Rechercher, puis entrez le nom du compte du service de passerelle.

  3. Dans les résultats de la recherche, cliquez avec le bouton droit sur le compte de service de passerelle, puis sélectionnez Propriétés.

  4. Si l’onglet Délégation est visible dans la boîte de dialogue Propriétés, cela signifie qu’un nom de principal du service a déjà été créé et que vous pouvez passer directement à Configurer la délégation Kerberos contrainte.

  5. S’il n’y a pas d’onglet Délégation dans la boîte de dialogue Propriétés, vous pouvez créer manuellement un nom de principal du service sur le compte pour l’activer. Utilisez l’outil setspn qui est fourni avec Windows (vous devez avoir des droits d’administrateur de domaine pour créer le nom de principal du service).

    Par exemple, supposez que le compte de service de passerelle est Contoso\GatewaySvc et que le service de passerelle s’exécute sur la machine nommée MyGatewayMachine. Pour définir le nom de principal du service pour le compte de service de passerelle, exécutez la commande suivante :

    setspn -S gateway/MyGatewayMachine Contoso\GatewaySvc

    Vous pouvez aussi définir le nom de principal du service en utilisant le composant logiciel enfichable MMC Utilisateurs et ordinateurs Active Directory.

Option B : Configurer l’ordinateur pour Azure AD Connect

Si Azure AD Connect est configuré, et que les comptes d’utilisateur sont synchronisés, le service de passerelle n’a pas besoin d’effectuer des recherches Active AD locales au moment de l’exécution. Au lieu de cela, vous pouvez simplement utiliser le SID du service local pour le service de passerelle afin d’effectuer toutes les configurations nécessaires dans Azure AD. Les étapes de configuration de la délégation Kerberos contrainte décrites dans cet article sont les mêmes que les étapes de configuration nécessaires dans le contexte Azure AD. La différence est qu’elles s’appliquent à l’objet d’ordinateur de la passerelle (identifié par le SID du service local) dans Azure AD au lieu du compte de domaine. Le SID du service local pour NT SERVICE/PBIEgwService est le suivant :

S-1-5-80-1835761534-3291552707-3889884660-1303793167-3990676079

Pour créer le nom SPN de ce SID par rapport à l’ordinateur Power BI Gateway, vous devez exécuter la commande suivante dans une invite de commandes d’administration (remplacer <COMPUTERNAME> par le nom de l’ordinateur Power BI Gateway) :

SetSPN -s HTTP/S-1-5-80-1835761534-3291552707-3889884660-1303793167-3990676079 <COMPUTERNAME>

Étape 4 : Configurer la délégation contrainte Kerberos

Vous pouvez configurer les paramètres de délégation pour la délégation Kerberos standard ou pour la délégation Kerberos contrainte basée sur les ressources. Pour plus d’informations sur les différences entre les deux approches de la délégation, consultez Vue d’ensemble de la délégation Kerberos contrainte.

Selon l’approche que vous voulez utiliser, passez à une des sections suivantes. N’effectuez pas les actions des deux sections :

Option A : Délégation contrainte standard Kerberos

Nous allons maintenant définir les paramètres de délégation pour le compte de service de passerelle. Différents outils permettent d’accomplir ces étapes. Ici, nous allons utiliser le composant MMC Utilisateurs et ordinateurs Active Directory pour administrer et publier des informations dans l’annuaire. Il est disponible par défaut sur les contrôleurs de domaine, mais vous pouvez également l’activer via la configuration des fonctionnalités de Windows.

Nous devons configurer une délégation Kerberos contrainte avec transit de protocole. Avec une délégation contrainte, vous devez être explicite quant aux services pour lesquels vous autorisez la passerelle à présenter les informations d’identification déléguées. Par exemple, seul le serveur SQL Server ou votre serveur SAP HANA accepte les appels de délégation du compte de service de passerelle.

Cette section suppose que vous avez déjà configuré les noms de principal du service pour vos sources de données sous-jacentes (par exemple, SQL Server, SAP HANA, SAP BW, Teradata ou Spark). Pour découvrir comment configurer ces noms de principal du service de serveur source de données, reportez-vous à la documentation technique du serveur de base de données concerné et consultez la section What SPN does your app require? dans le billet de blog My Kerberos Checklist.

Dans les étapes suivantes, nous supposons un environnement local comprenant deux machines dans le même domaine : une machine de passerelle et un serveur de base de données exécutant SQL Server déjà configuré pour l’authentification unique basée sur Kerberos. Les étapes peuvent être adoptées pour une des autres sources de données prises en charge, tant que la source de données a déjà été configurée pour l’authentification unique basée sur Kerberos. Pour cet exemple, nous allons utiliser les paramètres suivants :

  • Domaine Active Directory (NetBIOS) : Contoso
  • Nom de l’ordinateur de passerelle : MyGatewayMachine
  • Compte de service de passerelle : Contoso\GatewaySvc
  • Nom de la machine source de données SQL Server : TestSQLServer
  • Compte de service de source de données SQL Server : Contoso\SQLService

Voici comment configurer les paramètres de délégation :

  1. Avec des droits d’administrateur de domaine, ouvrez le composant MMC Utilisateurs et ordinateurs Active Directory.

  2. Cliquez avec le bouton droit sur le compte de service de passerelle (Contoso\GatewaySvc), puis sélectionnez Propriétés.

  3. Sélectionnez l’onglet Délégation.

  4. Sélectionnez N’approuver cet ordinateur que pour la délégation aux services spécifiés>Utiliser tout protocole d’authentification.

  5. Sous Ce compte peut présenter des informations d’identification déléguées à ces services, sélectionnez Ajouter.

  6. Dans la boîte de dialogue Nouveau, sélectionnez Utilisateurs ou ordinateurs.

  7. Entrez le compte de service pour la source de données, puis sélectionnez OK.

    Par exemple, une source de données SQL Server peut avoir un compte de service du type Contoso\SQLService. Un nom de principal de service (SPN) approprié pour la source de données doit déjà avoir été défini sur ce compte.

  8. Sélectionnez le nom de principal du service que vous avez créé pour le serveur de base de données.

    Dans notre exemple, le nom de principal du service commence par MSSQLSvc. Si vous avez ajouté le nom de domaine complet (FQDN) et le nom de principal du service NetBIOS pour votre service de base de données, sélectionnez les deux. Vous n’en voyez peut-être qu’un seul.

  9. Sélectionnez OK.

    Vous devez maintenant voir le SPN dans la liste des services auxquels le compte de service de passerelle peut présenter des informations d’identification déléguées.

    Boîte de dialogue Propriétés du connecteur de passerelle

  10. Pour continuer le processus de configuration, passez à Accorder au compte du service de passerelle les droits de stratégie locaux sur la machine de passerelle.

Option B : Délégation contrainte Kerberos basée sur les ressources

Vous utilisez la délégation contrainte Kerberos basée sur les ressources pour activer la connectivité d’authentification unique pour Windows Server 2012 et ultérieur. Ce type de délégation permet aux services front-end et back-end de se trouver dans des domaines différents. Pour qu’elle fonctionne, le domaine du service back-end doit approuver le domaine du service front-end.

Dans les étapes suivantes, nous supposons un environnement local comprenant deux machines dans différents domaines : une machine de passerelle et un serveur de base de données exécutant SQL Server déjà configuré pour l’authentification unique basée sur Kerberos. Ces étapes peuvent être adoptées pour une des autres sources de données prises en charge, tant que la source de données a déjà été configurée pour l’authentification unique basée sur Kerberos. Pour cet exemple, nous allons utiliser les paramètres suivants :

  • Domaine du front-end Active Directory (NetBIOS) : ContosoFrontEnd
  • Domaine du back-end Active Directory (NetBIOS) : ContosoBackEnd
  • Nom de l’ordinateur de passerelle : MyGatewayMachine
  • Compte de service de passerelle : ContosoFrontEnd\GatewaySvc
  • Nom de la machine source de données SQL Server : TestSQLServer
  • Compte de service de source de données SQL Server : ContosoBackEnd\SQLService

Effectuez les étapes de configuration suivantes :

  1. Utilisez le composant MMC Utilisateurs et ordinateurs Active Directory sur le contrôleur de domaine pour le domaine ContosoFrontEnd et vérifiez qu’aucun paramètre de délégation n’est appliqué pour le compte de service de passerelle.

    Propriétés de connecteur de passerelle

  2. Utilisez Utilisateurs et ordinateurs Active Directory sur le contrôleur de domaine pour le domaine ContosoBackEnd et vérifiez qu’aucun paramètre de délégation n’est appliqué pour le compte de service back-end.

    Propriétés du service SQL

  3. Sous l’onglet Éditeur d’attribut des propriétés du compte, vérifiez que l’attribut msDS-AllowedToActOnBehalfOfOtherIdentity n’est pas défini.

    Attributs du service SQL

  4. Dans Utilisateurs et ordinateurs Active Directory, créez un groupe sur le contrôleur de domaine pour le domaine ContosoBackEnd. Ajoutez le compte de service de passerelle GatewaySvc au groupe ResourceDelGroup.

    Propriétés du groupe

  5. Ouvrez une invite de commandes et exécutez les commandes suivantes dans le contrôleur de domaine pour le domaine ContosoBackEnd pour mettre à jour l’attribut msDS-AllowedToActOnBehalfOfOtherIdentity du compte de service back-end :

    $c = Get-ADGroup ResourceDelGroup
    Set-ADUser SQLService -PrincipalsAllowedToDelegateToAccount $c
    
  6. Dans Utilisateurs et ordinateurs Active Directory, vérifiez que la mise à jour est répercutée sous l’onglet Éditeur d’attribut dans les propriétés du compte de service back-end.

Étape 6 : Accorder au compte du service de passerelle les droits de stratégie locaux sur la machine de passerelle

Enfin, sur la machine exécutant le service de passerelle (dans notre exemple, MyGatewayMachine), attribuez au compte de service de passerelle les stratégies locales Emprunter l’identité d’un client après l’authentification et Agir en tant que partie du système d’exploitation (SeTcbPrivilege). Effectuez cette configuration avec l’Éditeur de stratégie de groupe locale (gpedit.mscx).

  1. Sur la machine de la passerelle, exécutez gpedit.msc.

  2. Accédez à Stratégie de l’ordinateur local>Configuration ordinateur>Paramètres Windows>Paramètres de sécurité>Stratégies locales>Attribution des droits utilisateur.

    Structure du dossier Stratégie de l’ordinateur local

  3. Sous Attribution des droits utilisateur, dans la liste des stratégies, sélectionnez Emprunter l’identité d’un client après l’authentification.

    Emprunter l’identité d’un client

  4. Cliquez avec le bouton droit sur la stratégie, ouvrez Propriétés, puis visualisez la liste des comptes.

    La liste doit inclure le compte de service de passerelle (Contoso\GatewaySvc ou ContosoFrontEnd\GatewaySvc, en fonction du type de la délégation contrainte).

  5. Sous Attribution des droits utilisateur, sélectionnez Agir en tant que partie du système d’exploitation (SeTcbPrivilege) dans la liste des stratégies. Vérifiez que le compte de service de passerelle est inclus dans la liste des comptes.

  6. Redémarrez le processus de service Passerelle de données locale.

Étape 7 : Le compte Windows peut accéder à la machine de la passerelle

L’authentification unique (SSO) utilise l’authentification Windows pour garantir que le compte Windows peut accéder à la machine de passerelle. En cas de doute, ajoutez NT-AUTHORITY\Authenticated Users (S-1-5-11) au groupe « Utilisateurs » de l’ordinateur local.

Section 2 : Configuration spécifique à l’environnement

Ajouter un compte de service de passerelle au groupe d’accès et d’autorisation Windows

Remplissez cette section si n’importe laquelle des situations suivantes s’applique :

  • Votre environnement Active Directory est renforcé en matière de sécurité.
  • Quand le compte de service de la passerelle et les comptes d’utilisateur pour lesquels la passerelle se fera passer se trouvent dans des domaines ou des forêts distincts.

Vous pouvez également ajouter le compte de service de passerelle au groupe d’accès et d’autorisation Windows dans les cas où la forêt/le domaine n'a pas été renforcé(e), mais ce n'est pas nécessaire.

Pour plus d'informations, voir Groupe d’accès et d’autorisation Windows.

Pour terminer cette étape de configuration, pour chaque domaine contenant des utilisateurs Active Directory, le compte de service de passerelle doit pouvoir emprunter une identité :

  1. Connectez-vous à un ordinateur du domaine et lancez le composant MMC Utilisateurs et ordinateurs Active Directory.
  2. Localisez le groupe Groupe d’accès et d’autorisation Windows, qui se trouve généralement dans le conteneur Builtin.
  3. Double-cliquez sur le groupe, puis cliquez sur l'onglet Membres.
  4. Cliquez sur Ajouter, et pointez l'emplacement du domaine vers le domaine dans lequel se trouve le compte de service de passerelle.
  5. Tapez le nom du compte de service de passerelle, puis cliquez sur Vérifier les noms pour vérifier que le compte de service de passerelle est accessible.
  6. Cliquez sur OK.
  7. Cliquez sur Appliquer.
  8. Redémarrez le service de passerelle.

Définir les paramètres de configuration de mappage d’utilisateur sur la machine de la passerelle

Remplissez cette section si :

  • Vous n’avez pas configuré Azure AD Connect ET
  • L’UPN utilisé dans Power BI pour les utilisateurs ne correspond pas à l’UPN dans votre environnement Active Directory local.

Chaque utilisateur Active Directory mappé de cette manière doit disposer des autorisations d’authentification unique pour votre source de données.

  1. Ouvrez le fichier de configuration de la passerelle principale, Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll. Par défaut, ce fichier est stocké à l’emplacement C:\Program Files\On-premises data gateway.

  2. Définissez ADUserNameLookupProperty sur un attribut Active Directory inutilisé. Nous allons utiliser msDS-cloudExtensionAttribute1 dans les étapes qui suivent. Cet attribut est disponible seulement dans Windows Server 2012 et ultérieur.

  3. Définissez ADUserNameReplacementProperty sur SAMAccountName, puis enregistrez le fichier de configuration.

    Notes

    Définissez ADUserNameReplacementProperty sur userPrincipalName pour toujours utiliser l’UPN Power BI.

  4. Sous l’onglet Services du Gestionnaire des tâches, cliquez avec le bouton droit sur le service de passerelle, puis sélectionnez Redémarrer.

    Capture d’écran de l’onglet Services du Gestionnaire des tâches

  5. Pour chaque utilisateur du service Power BI pour lequel vous voulez activer l’authentification unique Kerberos, définissez la propriété msDS-cloudExtensionAttribute1 d’un utilisateur Active Directory local (avec l’autorisation d’authentification unique sur votre source de données) sur le nom d’utilisateur complet (UPN) de l’utilisateur du service Power BI. Par exemple, si vous vous connectez au service Power BI en tant que test@contoso.com et que vous voulez mapper cet utilisateur à un utilisateur Active Directory local avec des autorisations d’authentification unique, par exemple test@LOCALDOMAIN.COM, définissez l’attribut msDS-cloudExtensionAttribute1 de cet utilisateur sur test@contoso.com.

    Vous pouvez définir la propriété msDS-cloudExtensionAttribute1 avec le composant MMC Utilisateurs et ordinateurs Active Directory :

    1. En tant qu’administrateur de domaine, lancez Utilisateurs et ordinateurs Active Directory.

    2. Cliquez avec le bouton droit sur le nom de domaine, sélectionnez Rechercher, puis entrez le nom de compte de l’utilisateur local Active Directory à mapper.

    3. Sélectionnez l’onglet Éditeur d’attributs.

      Recherchez la propriété msDS-cloudExtensionAttribute1, puis double-cliquez dessus. Définissez la valeur sur le nom complet de l’utilisateur (UPN) dont vous vous servez pour vous connecter au service Power BI.

    4. Sélectionnez OK.

      Fenêtre Éditeur d’attribut de chaîne

    5. Sélectionnez Appliquer. Vérifiez que la valeur correcte a été définie dans la colonne Valeur.

Effectuer les étapes de configuration spécifiques à la source de données

Pour les sources de données SAP HANA, SAP BW et Teradata, une configuration supplémentaire est nécessaire pour utiliser l’authentification unique de la passerelle :

Notes

D’autres bibliothèques SNC peuvent également fonctionner pour l’authentification unique BW, mais elles ne sont pas officiellement prises en charge par Microsoft.

Section 3 : Valider la configuration

Étape 1 : Configurer les sources de données dans Power BI

Une fois que vous avez terminé toutes les étapes de configuration, utilisez la page Gérer la passerelle dans Power BI pour configurer la source de données à utiliser pour l’authentification unique. Si vous avez plusieurs passerelles, assurez-vous de sélectionner la passerelle que vous avez configurée pour l’authentification unique Kerberos. Ensuite, dans la zone Paramètres de votre source de données, assurez-vous que l’option Utiliser SSO via Kerberos pour les requêtes DirectQuery ou Utiliser SSO via Kerberos pour les requêtes DirectQuery et d’importation est activée pour les rapports basés sur DirectQuery, et que l’option Utiliser SSO via Kerberos pour les requêtes DirectQuery et d’importation est activée pour les rapports basés sur l’importation.

 Capture d’écran de l’ajout de paramètres pour l’authentification unique.

Les paramètres Utiliser l’authentification unique via Kerberos pour les requêtes DirectQuery et Utiliser l’authentification unique via Kerberos pour les requêtes DirectQuery et d’importation offrent un comportement différent pour les rapports basés sur DirectQuery et les rapports d’importation.

Utiliser SSO via Kerberos pour les requêtes DirectQuery :

  • Pour les rapports basés sur DirectQuery, on utilise les informations d’identification SSO de l’utilisateur.
  • Pour les rapports basés sur l’importation, on n’utilise pas les informations d’identification SSO, mais les informations d’identification entrées dans la page source de données.

Utiliser SSO via Kerberos pour les requêtes DirectQuery et d’importation :

  • Pour les rapports basés sur DirectQuery, on utilise les informations d’identification SSO de l’utilisateur.
  • Pour les rapports basés sur l’importation, on utilise les informations d’identification SSO du propriétaire du jeu de données, quel que soit l’utilisateur qui déclenche l’importation.

Étape 2 : Tester l’authentification unique

Accédez à Tester la configuration de l’authentification unique pour vérifier rapidement que votre configuration est correcte et résoudre les problèmes courants.

Étape 3 : Générer un rapport Power BI

Quand vous publiez, sélectionnez la passerelle que vous avez configurée pour l’authentification unique si vous avez plusieurs passerelles.

Étapes suivantes

Pour plus d’informations sur la passerelle de données locale et DirectQuery, consultez les ressources suivantes :