Access BigQuery data in Power BI with Workforce Identity Federation and Microsoft Entra

This guide shows you how to let users that are in Microsoft Entra groups accessBigQuery data in Power BI by usingWorkforce Identity Federation.

Microsoft Entra is the identity provider (IdP). Groups claims from MicrosoftEntra are mapped to Google Cloud. Groups are granted Identity and Access Management (IAM)permission to access the BigQuery data.

This guide provides instructions for Power BI Desktop or Web.

Before you begin

  1. Make sure that you have a Google Cloud organization set up.
  2. Install the Google Cloud CLI. After installation,initialize the Google Cloud CLI by running the following command:

    gcloudinit

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update.
  3. You must have access to Microsoft Entra and Microsoft Graph.
  4. You must have Power BI set up.

Costs

Workforce Identity Federation is availableas a no-cost feature. However, Workforce Identity Federation detailed audit logging uses Cloud Logging. To learn about Logging pricing,seeGoogle Cloud Observability pricing.

Required roles

This section describes roles that are required for administrators and resources.

Roles for administrators

To get the permissions that you need to configure Workforce Identity Federation, ask your administrator to grant you theIAM Workforce Pool Admin (roles/iam.workforcePoolAdmin) IAM role on the organization. For more information about granting roles, seeManage access to projects, folders, and organizations.

You might also be able to get the required permissions throughcustom roles or otherpredefined roles.

Alternatively, the IAM Owner (roles/owner) basic role alsoincludes permissions to configure identity federation.You should not grant basic roles in a production environment, but you can grant them in adevelopment or test environment.

Roles for federated identities

Power BI sends theuserProject parameter during token exchange. Because ofthis, you must ask your administrator to grant the role Service Usage Consumer(roles/serviceusage.serviceUsageConsumer) to the federated identities on thebilling project.

To grant the role to a group of federated identities, run the following command:

gcloudprojectsadd-iam-policy-bindingPROJECT_ID\--role="roles/serviceusage.serviceUsageConsumer"\--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Replace the following:

  • PROJECT_ID: the billing project ID.
  • WORKFORCE_POOL_ID: the workforce identity pool ID.
  • GROUP_ID: the group ID—for example,admin-group@altostrat.com. To see a list of common principal identifiers, seePrincipal identifiers.

Create a workforce identity pool

This section describes how to create the workforce identity pool. You create theworkforce identity pool provider later in this guide.

gcloud

To create the workforce identity pool, run the following command:

gcloudiamworkforce-poolscreateWORKFORCE_POOL_ID\--organization=ORGANIZATION_ID\--display-name="DISPLAY_NAME"\--description="DESCRIPTION"\--session-duration=SESSION_DURATION\--location=global

Replace the following:

  • WORKFORCE_POOL_ID: an ID that you choose to representyour Google Cloud workforce pool. For information on formatting the ID,see theQuery parameterssection in the API documentation.
  • ORGANIZATION_ID: the numeric organization ID ofyour Google Cloud organization for the workforce identity pool.Workforce identity pools are available across all projects andfolders in the organization.
  • DISPLAY_NAME: Optional. A display name for yourworkforce identity pool.
  • DESCRIPTION: Optional. A workforce identity pooldescription.
  • SESSION_DURATION: Optional. The session duration,expressed as a number appended withs—for example,3600s. Sessionduration determines how long the Google Cloud access tokens,console (federated)sign-in sessions, and gcloud CLI sign-in sessions from thisworkforce pool are valid. Session duration defaults to one hour (3600s). Thesession duration value must be between 15 minutes (900s) and 12 hours(43200s).
Tip: Rungcloud iam workforce-pools create --help to find otherparameters you can customize for this command.

Console

To create the workforce identity pool, do the following:

  1. In the Google Cloud console, go to theWorkforce Identity Poolspage:

    Go to Workforce Identity Pools

  2. Select the organization for your workforce identity pool. Workforceidentity pools are available across all projects and folders in anorganization.

  3. ClickCreate pool and do the following:

    1. In theName field, enter the display name of the pool. The pool IDis automatically derived from the name as you type, and it isdisplayed under theName field. You can update the pool ID byclickingEdit next to the pool ID.

    2. Optional: InDescription, enter a description of the pool.

    3. To create the workforce identity pool, clickNext.

The workforce identity pool's session duration defaults to one hour (3600s).The session duration determines how long the Google Cloud access tokens,console (federated),and gcloud CLI sign-in sessions from this workforce poolare valid. After you create the pool, you canupdate the pool to seta custom session duration. The session duration must be from 15minutes (900s) to 12 hours (43200s).

Register a new Microsoft Entra app

This section shows you how to create a Microsoft Entra app using the MicrosoftAzure portal.

  1. Register a new Microsoft Entra application.

  2. In the Microsoft Entra application that you registered,create a new client secret. Note the client secret.

  3. Grant API permissions to your Microsoft Entra application so that it canaccess users and groups information from Active Directory. To grantpermissions for Microsoft Graph API, do the following:

    1. In your application, selectAPI Permissions.
    2. InConfigured permissions, clickAdd a permission.
    3. in theRequest API permissions dialog, selectMicrosoft Graph.
    4. SelectApplication permissions.
    5. In theSelect Permissions dialog, do the following:
      1. In the search field, enterUser.ReadBasic.All.
      2. ClickUser.ReadBasic.All.
      3. ClickAdd permissions.
    6. in theRequest API permissions dialog, selectMicrosoft Graph.
    7. SelectApplication permissions.
    8. In theSelect Permissions dialog, do the following:
      1. In the search field, enterGroupMember.Read.All.
      2. ClickGroupMember.Read.All.
      3. ClickAdd permissions.
    9. InConfigured permissions, clickGrant admin consent for (domain name).
    10. When you are asked to confirm, clickYes.
  4. To access the values that you need to configure the workforce pool providerlater in this guide, do the following:

    1. Go to theOverview page of the Microsoft Entra application.
    2. ClickEndpoints.
    3. Note the following values:

      • Client ID: the ID of the Microsoft Entra app that you registeredearlier in this guide.
      • Client Secret: the client secret that you generated earlier inthis guide.
      • Tenant ID: the tenant ID of the Microsoft Entra app that youregistered earlier in this guide.
      • Issuer URI: the URI of the OpenID Connect metadata document,omitting/.well-known/openid-configuration. For example, if theOpenID Connect metadata document URL ishttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration,then the Issuer URI ishttps://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.

Create a workforce identity pool provider

To create the provider, run the following command:

gcloudiamworkforce-poolsproviderscreate-oidcWORKFORCE_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

Replace the following:

Create IAM policies

In this section, you create an IAM allow policy that grants therole BigQuery Data Viewer (roles/bigquery.dataViewer) to the mapped group onthe project where your BigQuery data is stored. Thepolicy lets all identities that are in the group view data fromBigQuery tables and views that are stored in the project.

To create the policy, run the following command:

gcloudprojectsadd-iam-policy-bindingBIGQUERY_PROJECT_ID\--role="roles/bigquery.dataViewer"\--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Replace the following:

  • BIGQUERY_PROJECT_ID: the project ID where yourBigQuery data and metadata are stored.
  • WORKFORCE_POOL_ID: the workforce identity pool ID
  • GROUP_ID: the group identifier, which depends onthe value of--extra-attributes-type that was used to create the workforceidentity pool provider, as follows:

    • azure-ad-groups-mail: the group identifier is an email address—forexample:admin-group@altostrat.com

    • azure-ad-groups-id: the group identifier is a UUID for the group—forexample:abcdefgh-0123-0123-abcdef

Access BigQuery data from Power BI Desktop

To access BigQuery data from Power BI Desktop, do the following:

  1. Open Power BI.
  2. ClickGet Data.
  3. ClickDatabase.
  4. In the list of databases, selectGoogle BigQuery (Microsoft Entra ID) (Beta).
  5. ClickConnect.
  6. Fill in the following required fields:

    • Billing project ID: the billing project ID.
    • Audience URI: the Google Cloud URI, formatted as follows:

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID

      Replace the following:

      • WORKFORCE_POOL_ID: the workforce identity poolID.

      • WORKFORCE_PROVIDER_ID: the workforce identity poolprovider ID.

  7. ClickOk.

  8. ClickNext.

  9. ClickSelect the data.

If you are asked to sign in, use a Microsoft Entra identity that is a member ofthe group.

You can now use data from BigQuery in Power BI Desktop.

Access the BigQuery data from Power BI Web

To access BigQuery data from Power BI Web, do the following:

  1. Go to Power BI Web.

  2. ClickPower query to add new data source.

  3. ClickGet data.

  4. In the list, find and select theGoogle BigQuery (Microsoft Entra ID) (Beta).

  5. Fill in the following required fields:

    • Billing Project ID: the Google Cloud billing project

    • Audience URI: the audience URI, formatted as follows:

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID

      Replace the following:

      • WORKFORCE_POOL_ID: the workforce identity poolID

      • WORKFORCE_PROVIDER_ID: the workforce identity poolprovider ID

  6. ClickConnection Credentials>Authentication kind.

  7. SelectOrganizational account.

  8. ClickSign in.

  9. ClickNext.

  10. ClickSelect the data.

You can now use data from BigQuery in Power BI Web.

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-02-18 UTC.