Ce guide explique comment autoriser les utilisateurs des groupes Microsoft Entra à accéder aux données BigQuery dans Power BI à l'aide de la des identités des employés.
Microsoft Entra est le fournisseur d'identité (IdP). Les revendications de groupes de Microsoft Entra sont mappées à Google Cloud. Les groupes disposent de l'autorisation IAM (Identity and Access Management) pour accéder aux données BigQuery.
Ce guide fournit des instructions pour Power BI Desktop ou Web.
Avant de commencer
- Assurez-vous d'avoir configuré une organisation Google Cloud .
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
- Vous devez avoir accès à Microsoft Entra et Microsoft Graph.
- Power BI doit être configuré.
Coûts
La fédération d'identité de personnel est disponible sans frais. Toutefois, la journalisation d'audit détaillée de la fédération d'identité du personnel utilise Cloud Logging. Pour en savoir plus sur les tarifs de Logging, consultez la page Tarifs de Google Cloud Observability.
Rôles requis
Cette section décrit les rôles requis pour les administrateurs et les ressources.
Rôles pour les administrateurs
Pour obtenir les autorisations nécessaires pour configurer la fédération des identités des employés, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur de pools d'employés (roles/iam.workforcePoolAdmin) sur l'organisation.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Le rôle de base IAM "Propriétaire" (roles/owner) inclut également des autorisations permettant de configurer la fédération d'identité.
Les rôles de base ne doivent pas être attribués dans un environnement de production, mais ils peuvent être attribués dans un environnement de développement ou de test.
Rôles pour les identités fédérées
Power BI envoie le paramètre userProject lors de l'échange de jetons. Pour cette raison, vous devez demander à votre administrateur d'attribuer le rôle Consommateur Service Usage (roles/serviceusage.serviceUsageConsumer) aux identités fédérées sur le projet de facturation.
Pour accorder le rôle à un groupe d'identités fédérées, exécutez la commande suivante :
gcloud projects add-iam-policy-binding PROJECT_ID \
--role="roles/serviceusage.serviceUsageConsumer" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Remplacez les éléments suivants :
PROJECT_ID: ID du projet de facturation.WORKFORCE_POOL_ID: ID du pool d'identités de personnelGROUP_ID: ID du groupe, par exempleadmin-group@altostrat.comPour afficher la liste des identifiants de comptes principaux communs, consultez la section Identifiants de comptes principaux.
Créer un pool d'identités de personnel
Cette section explique comment créer le pool d'identités des employés. Vous allez créer le fournisseur de pools d'identités des employés plus loin dans ce guide.
gcloud
Pour créer le pool d'identités de personnel, exécutez la commande suivante :
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
Remplacez les éléments suivants :
WORKFORCE_POOL_ID: ID que vous choisissez pour représenter votre pool de personnel Google Cloud . Pour plus d'informations sur la mise en forme de l'ID, consultez la section Paramètres de requête dans la documentation de l'API.ORGANIZATION_ID: ID d'organisation numérique de votre organisation Google Cloud pour le pool d'identités de personnel. Les pools d'identités de personnel sont disponibles dans tous les projets et dossiers de l'organisation.DISPLAY_NAME: facultatif. Un nom à afficher pour votre pool d'identités d'employés.DESCRIPTION: facultatif. Description du pool d'identités de personnelSESSION_DURATION: facultatif. Durée de la session, exprimée sous la forme d'un nombre suivi des(par exemple,3600s). La durée de la session détermine la durée pendant laquelle les jetons d'accès Google Cloud , les sessions de connexion à la console (fédération) et les sessions de connexion à gcloud CLI de ce pool de personnel sont valides. La durée de la session est définie par défaut sur une heure (3 600 s). La valeur de la durée de la session doit être comprise entre 15 minutes (900 s) et 12 heures (43 200 s).
Console
Pour créer le pool d'identités de personnel, procédez comme suit :
Dans la console Google Cloud , accédez à la page Pools d'identités de personnel :
Sélectionnez l'organisation pour votre pool d'identités d'employés. Les pools d'identités Workforce sont disponibles pour tous les projets et dossiers d'une organisation.
Cliquez sur Créer un pool et procédez comme suit :
Dans le champ Nom, saisissez le nom à afficher du pool. L'ID du pool est automatiquement dérivé du nom au fur et à mesure de la saisie, et s'affiche sous le champ Nom. Vous pouvez modifier l'ID du pool en cliquant sur Modifier à côté de l'ID du pool.
Facultatif : Dans le champ Description, saisissez une description du pool.
Pour créer le pool d'identités de personnel, cliquez sur Suivant.
La durée de session du pool d'identités de personnel est définie par défaut sur une heure (3 600 s). La durée de la session détermine la durée pendant laquelle les jetons d'accès Google Cloud , la console (fédération) et les sessions de connexion à gcloud CLI de ce pool de personnel sont valides. Une fois le pool créé, vous pouvez le modifier pour définir une durée de session personnalisée. La durée de la session doit être comprise entre 15 minutes (900 s) et 12 heures (43 200 s).
Enregistrer une nouvelle application Microsoft Entra
Cette section explique comment créer une application Microsoft Entra à l'aide du portail Microsoft Azure.
Dans l'application Microsoft Entra que vous avez enregistrée, créez un code secret du client. Notez le code secret du client.
Accordez des autorisations d'API à votre application Microsoft Entra afin qu'elle puisse accéder aux informations sur les utilisateurs et les groupes à partir d'Active Directory. Pour accorder des autorisations pour l'API Microsoft Graph, procédez comme suit :
- Dans votre application, sélectionnez Autorisations des API.
- Dans Autorisations configurées, cliquez sur Ajouter une autorisation.
- Dans la boîte de dialogue Demander des autorisations d'API, sélectionnez Microsoft Graph.
- Sélectionnez Autorisations de l'application.
- Dans la boîte de dialogue Sélectionner des autorisations, procédez comme suit :
- Dans le champ de recherche, saisissez
User.ReadBasic.All. - Cliquez sur User.ReadBasic.All.
- Cliquez sur Ajouter des autorisations.
- Dans le champ de recherche, saisissez
- Dans la boîte de dialogue Demander des autorisations d'API, sélectionnez Microsoft Graph.
- Sélectionnez Autorisations de l'application.
- Dans la boîte de dialogue Sélectionner des autorisations, procédez comme suit :
- Dans le champ de recherche, saisissez
GroupMember.Read.All. - Cliquez sur GroupMember.Read.All.
- Cliquez sur Ajouter des autorisations.
- Dans le champ de recherche, saisissez
- Dans Autorisations configurées, cliquez sur Accorder l'autorisation administrateur pour (nom de domaine).
- Lorsque vous êtes invité à confirmer votre choix, cliquez sur Oui.
Pour accéder aux valeurs dont vous aurez besoin pour configurer le fournisseur de pools des employés plus loin dans ce guide, procédez comme suit :
- Accédez à la page Présentation de l'application Microsoft Entra.
- Cliquez sur Points de terminaison.
Notez les valeurs suivantes :
- ID client : ID de l'application Microsoft Entra que vous avez enregistré précédemment dans ce guide.
- Code secret du client : code secret du client que vous avez généré précédemment dans ce guide.
- ID de locataire : ID de locataire de l'application Microsoft Entra que vous avez enregistrée précédemment dans ce guide.
- URI d'émetteur : URI du document de métadonnées OpenID Connect, en omettant
/.well-known/openid-configuration. Par exemple, si l'URL du document de métadonnées OpenID Connect esthttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration, l'URI d'émetteur esthttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.
Créer un fournisseur de pools d'identités de personnel
Pour créer le fournisseur, exécutez la commande suivante :
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--issuer-uri=ISSUER_URI \
--client-id=https://analysis.windows.net/powerbi/connector/GoogleBigQuery \
--attribute-mapping=ATTRIBUTE_MAPPING \
--web-sso-response-type=id-token \
--web-sso-assertion-claims-behavior=only-id-token-claims \
--extra-attributes-issuer-uri=APP_ISSUER_URI \
--extra-attributes-client-id=APP_CLIENT_ID \
--extra-attributes-client-secret-value=APP_CLIENT_SECRET \
--extra-attributes-type=EXTRA_GROUPS_TYPE \
--extra-attributes-filter=EXTRA_FILTER \
--detailed-audit-logging
Remplacez les éléments suivants :
WORKFORCE_PROVIDER_ID: ID de fournisseur unique. Le préfixegcp-est réservé et ne peut pas être utilisé dans un ID de fournisseur.WORKFORCE_POOL_ID: ID du pool d'identités des employés auquel connecter votre fournisseur d'identité.DISPLAY_NAME: nom à afficher facile à utiliser et facultatif pour le fournisseur.ISSUER_URI: valeur de l'URI d'émetteur, au formathttps://sts.windows.net/TENANT_ID. RemplacezTENANT_IDpar l'ID de locataire que vous avez noté précédemment.ATTRIBUTE_MAPPING: mappage du groupe et, éventuellement, d'autres attributs de la revendication Microsoft Entra aux attributsGoogle Cloud (par exemple :google.groups=assertion.groups, google.subject=assertion.sub). Le groupe est autorisé à accéder aux données BigQuery plus loin dans ce guide.Pour en savoir plus, consultez Mappage d'attributs.
APP_ISSUER_URI: URI d'émetteur de l'application Microsoft Entra que vous avez noté précédemment.APP_CLIENT_ID: ID client d'émetteur que vous avez noté précédemment.APP_CLIENT_SECRET: code secret du client émetteur que vous avez noté précédemment.EXTRA_GROUPS_TYPE: type d'identifiant de groupe, qui peut être l'un des suivants :azure-ad-groups-mail: les adresses e-mail de groupe sont récupérées à partir du fournisseur d'identité (par exemple,admin-group@altostrat.com).azure-ad-groups-id: les UUID qui représentent les groupes sont récupérés à partir du fournisseur d'identité (par exemple,abcdefgh-0123-0123-abcdef).
EXTRA_FILTER: filtre utilisé pour demander des assertions spécifiques à transmettre depuis le fournisseur d'identité. En spécifiant--extra-attributes-type=azure-ad-groups-mail,--extra-attributes-filterfiltre les revendications du groupe d'un utilisateur transmises depuis le fournisseur d'identité. Par défaut, tous les groupes associés à l'utilisateur sont récupérés. La messagerie et la sécurité doivent être activées dans les groupes utilisés. Pour en savoir plus, consultez la section Utiliser le paramètre de requête $search.L'exemple suivant filtre les groupes associés à des adresses e-mail d'utilisateur commençant par
gcp: L'exemple suivant filtre les groupes associés à des utilisateurs dont l'adresse e-mail commence par--extra-attributes-filter='"mail:gcp"'gcpet le displayName contientexample:--extra-attributes-filter='"mail:gcp" AND "displayName:example"'La journalisation d'audit détaillée de la fédération des identités des employés enregistre les informations reçues de votre fournisseur d'identité dans Logging. La journalisation d'audit détaillée peut vous aider à résoudre les problèmes liés à la configuration de votre fournisseur de pools d'identités des employés. Pour savoir comment résoudre les erreurs de mappage d'attributs à l'aide de journaux d'audit détaillés, consultez Erreurs générales de mappage d'attributs. Pour en savoir plus sur les tarifs de Logging, consultez la page Tarifs de Google Cloud Observability.
Pour désactiver la journalisation d'audit détaillée pour un fournisseur de pool d'identités de personnel, omettez l'indicateur
--detailed-audit-logginglorsque vous exécutezgcloud iam workforce-pools providers create. Pour désactiver la journalisation d'audit détaillée, vous pouvez également mettre à jour le fournisseur.
Créer des stratégies IAM
Dans cette section, vous créez une stratégie d'autorisation IAM qui attribue le rôle "Lecteur de données BigQuery" (roles/bigquery.dataViewer) au groupe mappé dans le projet dans lequel vos données BigQuery sont stockées. La stratégie permet à toutes les identités du groupe de consulter les données des tables et des vues BigQuery stockées dans le projet.
Pour créer un autre sous-réseau, exécutez la commande suivante :
gcloud projects add-iam-policy-binding BIGQUERY_PROJECT_ID \
--role="roles/bigquery.dataViewer" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Remplacez les éléments suivants :
BIGQUERY_PROJECT_ID: ID du projet dans lequel vos données et métadonnées BigQuery sont stockées.WORKFORCE_POOL_ID: ID du pool d'identités de personnelGROUP_ID: identifiant du groupe, qui dépend de la valeur de--extra-attributes-typeutilisée pour créer le fournisseur de pool d'identités de personnel, comme suit :azure-ad-groups-mail: l'identifiant du groupe est une adresse e-mail (par exemple,admin-group@altostrat.com).azure-ad-groups-id: l'identifiant du groupe est un UUID pour le groupe, par exemple :abcdefgh-0123-0123-abcdef
Accéder aux données BigQuery depuis Power BI Desktop
Pour accéder aux données BigQuery à partir de Power BI Desktop, procédez comme suit :
- Ouvrez Power BI.
- Cliquez sur Obtenir les données.
- Cliquez sur Base de données.
- Dans la liste des bases de données, sélectionnez Google BigQuery (Microsoft Entra ID) (bêta).
- Cliquez sur Se connecter.
Renseignez les champs obligatoires suivants :
- ID du projet de facturation : ID du projet de facturation.
URI d'audience : URI Google Cloud , formaté comme suit :
//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDRemplacez les éléments suivants :
WORKFORCE_POOL_ID: ID du pool d'identités des employésWORKFORCE_PROVIDER_ID: ID du fournisseur de pools d'identités des employés
Cliquez sur OK.
Cliquez sur Suivant.
Cliquez sur Sélectionner les données.
Si vous êtes invité à vous connecter, utilisez une identité Microsoft Entra membre du groupe.
Vous pouvez désormais utiliser les données de BigQuery dans Power BI Desktop.
Accéder aux données BigQuery depuis Power BI Web
Pour accéder aux données BigQuery à partir de Power BI Web, procédez comme suit :
Accédez à Power BI Web.
Cliquez sur Requête d'alimentation pour ajouter une source de données.
Cliquez sur Obtenir des données.
Dans la liste, recherchez et sélectionnez Google BigQuery (Microsoft Entra ID) (bêta).
Renseignez les champs obligatoires suivants :
ID du projet de facturation : projet de facturation Google Cloud .
URI d'audience : URI d'audience, formaté comme suit :
//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDRemplacez les éléments suivants :
WORKFORCE_POOL_ID: ID du pool d'identités de personnelWORKFORCE_PROVIDER_ID: ID du fournisseur de pools d'identités des employés
Cliquez sur Identifiants de connexion > Genre d'authentification.
Sélectionnez Compte professionnel.
Cliquez sur Se connecter.
Cliquez sur Suivant.
Cliquez sur Sélectionner les données.
Vous pouvez désormais utiliser les données BigQuery dans Power BI Web.
Étapes suivantes
- Pour supprimer des utilisateurs de la fédération d'identité des employés et leurs données, consultez la page Supprimer des utilisateurs de la fédération d'identité des employés et leurs données.
- Pour en savoir plus sur la compatibilité des produits Google Cloud avec la fédération d'identité des employés, consultez Fédération d'identité : produits compatibles et limites.