Accéder aux données BigQuery dans Power BI avec la fédération des identités des employés et Microsoft Entra

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

  1. Vous devez disposer d'une organisation Google Cloud déjà configurée.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. Vous devez avoir accès à Microsoft Entra et Microsoft Graph.

  4. Power BI doit être configuré.

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 section Gérer les accès.

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 personnel
  • GROUP_ID : ID du groupe, par exemple admin-group@example.com Pour 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.

Console

Pour créer le pool d'identités de personnel, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :

    Accéder aux pools d'identités de personnel

  2. Cliquez sur Créer un pool et procédez comme suit :

    1. Dans le champ Nom, saisissez le nom du pool. L'ID du pool est automatiquement dérivé du nom au fur et à mesure de la saisie.

    2. Facultatif : pour mettre à jour l'ID, cliquez sur Modifier.

    3. Facultatif : Dans le champ Description, saisissez une description du pool.

    4. La durée de la session est définie par défaut. Pour saisir une durée de session personnalisée, cliquez sur Modifier. 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 doit être supérieure à 15 minutes (900 s) et inférieure à 12 heures (43 200 s). Si la durée de la session n'est pas définie, elle est définie par défaut sur une durée d'une heure (3 600 s).

    5. Pour créer le pool à l'état "Activé", assurez-vous que le pool activé est activé.

    6. Pour créer le pool d'identités de personnel, cliquez sur Suivant.

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 \
    --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.
  • DESCRIPTION : description du pool d'identités de personnel
  • SESSION_DURATION : durée de la session, qui 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 doit être supérieure à 15 minutes (900 s) et inférieure à 12 heures (43 200 s). Si la durée de la session n'est pas définie, elle est définie par défaut sur une durée d'une heure (3 600 s).

Enregistrer une nouvelle application Microsoft Entra

Cette section explique comment créer une application Microsoft Entra à l'aide du portail Microsoft Azure.

  1. Enregistrez une nouvelle application Microsoft Entra.

  2. Dans l'application Microsoft Entra que vous avez enregistrée, créez un code secret du client. Notez le code secret du client.

  3. 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 :

    1. Dans votre application, sélectionnez Autorisations des API.
    2. Dans Autorisations configurées, cliquez sur Ajouter une autorisation.
    3. Dans la boîte de dialogue Demander des autorisations d'API, sélectionnez Microsoft Graph.
    4. Sélectionnez Autorisations de l'application.
    5. Dans la boîte de dialogue Sélectionner des autorisations, procédez comme suit :
      1. Dans le champ de recherche, saisissez User.ReadBasic.All.
      2. Cliquez sur User.ReadBasic.All.
      3. Cliquez sur Ajouter des autorisations.
    6. Dans la boîte de dialogue Demander des autorisations d'API, sélectionnez Microsoft Graph.
    7. Sélectionnez Autorisations de l'application.
    8. Dans la boîte de dialogue Sélectionner des autorisations, procédez comme suit :
      1. Dans le champ de recherche, saisissez GroupMember.Read.All.
      2. Cliquez sur GroupMember.Read.All.
      3. Cliquez sur Ajouter des autorisations.
    9. Dans Autorisations configurées, cliquez sur Accorder l'autorisation administrateur pour (nom de domaine).
    10. Lorsque vous êtes invité à confirmer votre choix, cliquez sur Oui.
  4. 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 :

    1. Accédez à la page Présentation de l'application Microsoft Entra.
    2. Cliquez sur Points de terminaison.
    3. 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 est https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration, l'URI d'émetteur est https://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 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=azure-ad-groups-mail \
    --extra-attributes-filter=FILTER

Remplacez les éléments suivants :

  • PROVIDER_ID : ID de fournisseur unique. Le préfixe gcp- 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 format https://sts.windows.net/TENANT_ID. Remplacez TENANT_ID par 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 attributs Google 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.
  • 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.
  • FILTER : filtre utilisé pour demander des assertions spécifiques transmises du fournisseur d'identité. En spécifiant --extra-attributes-type=azure-ad-groups-mail, --extra-attributes-filter filtre 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. Vous pouvez récupérer jusqu'à 100 groupes.

    L'exemple suivant filtre les groupes associés à des adresses e-mail d'utilisateur commençant par gcp :

    --extra-attributes-filter='"mail:gcp"'
    L'exemple suivant filtre les groupes associés à des utilisateurs dont l'adresse e-mail commence par gcp et displayName contenant example :
    --extra-attributes-filter='"mail:gcp" AND "displayName:example"'

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 personnel
  • GROUP_ID : groupe (par exemple, admin-group@example.com)

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 :

  1. Ouvrez Power BI.
  2. Cliquez sur Obtenir les données.
  3. Cliquez sur Base de données.
  4. Dans la liste des bases de données, sélectionnez Google BigQuery (Azure AD) (bêta).
  5. Cliquez sur Connect (Se connecter).
  6. 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/PROVIDER_ID
      

      Remplacez les éléments suivants :

      • WORKFORCE_POOL_ID : ID du pool d'identités des employés

      • PROVIDER_ID : ID du fournisseur de pools d'identités des employés

  7. Cliquez sur OK.

  8. Cliquez sur Suivant.

  9. 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 :

  1. Accédez à Power BI Web.

  2. Cliquez sur Requête d'alimentation pour ajouter une source de données.

  3. Cliquez sur Obtenir des données.

  4. Dans la liste, recherchez et sélectionnez Google BigQuery (Azure AD) (bêta).

  5. 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/PROVIDER_ID
      

      Remplacez les éléments suivants :

      • WORKFORCE_POOL_ID : ID du pool d'identités de personnel

      • PROVIDER_ID : ID du fournisseur de pools d'identités des employés

  6. Cliquez sur Identifiants de connexion > Genre d'authentification.

  7. Sélectionnez Compte professionnel.

  8. Cliquez sur Se connecter.

  9. Cliquez sur Suivant.

  10. Cliquez sur Sélectionner les données.

Vous pouvez désormais utiliser les données BigQuery dans Power BI Web.

Étapes suivantes