Accedere ai dati di BigQuery in Power BI con la federazione di Workforce Identity e Microsoft Entra

Questa guida mostra come consentire agli utenti che fanno parte di gruppi Microsoft Entra di accedere ai dati BigQuery in Power BI utilizzando la Federazione delle identità per la forza lavoro.

Microsoft Entra è il provider di identità (IdP). I diritti di gruppo di Microsoft Entra sono mappati a Google Cloud. Ai gruppi viene concessa l'autorizzazione Identity and Access Management (IAM) per accedere ai dati BigQuery.

Questa guida fornisce istruzioni per Power BI Desktop o web.

Prima di iniziare

  1. Assicurati di aver configurato un'organizzazione Google Cloud.
  2. After installing the Google Cloud CLI, configure the gcloud CLI to use your federated identity and then initialize it by running the following command:

    gcloud init
  3. Devi avere accesso a Microsoft Entra e Microsoft Graph.
  4. Devi aver configurato Power BI.

Ruoli obbligatori

Questa sezione descrive i ruoli richiesti per gli amministratori e le risorse.

Ruoli per gli amministratori

Per ottenere le autorizzazioni necessarie per configurare la federazione delle identità per la forza lavoro, chiedi all'amministratore di concederti il ruolo IAM Amministratore pool Workload Identity (roles/iam.workforcePoolAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

In alternativa, il ruolo di base Proprietario IAM (roles/owner) include anche le autorizzazioni per configurare la federazione delle identità. Non dovresti concedere ruoli di base in un ambiente di produzione, ma puoi farlo in un ambiente di sviluppo o di test.

Ruoli per le identità federate

Power BI invia il parametro userProject durante lo scambio di token. Per questo motivo, devi chiedere all'amministratore di concedere il ruolo Consumer di utilizzo del servizio (roles/serviceusage.serviceUsageConsumer) alle identità federate nel progetto di fatturazione.

Per concedere il ruolo a un gruppo di identità federate, esegui il seguente comando:

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"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto di fatturazione.
  • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro.
  • GROUP_ID: l'ID gruppo, ad esempio admin-group@example.com. Per un elenco degli identificatori principali comuni, consulta Identificatori principali.

Crea un pool di identità della forza lavoro

Questa sezione descrive come creare il pool di identità della forza lavoro. Crea il fornitore del pool di identità per la forza lavoro più avanti in questa guida.

Console

Per creare il pool di identità della forza lavoro, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Pool di identità del personale:

    Vai a Pool di identità della forza lavoro

  2. Fai clic su Crea pool e segui questi passaggi:

    1. Nel campo Nome, inserisci il nome visualizzato del pool. L'ID pool viene ricavato automaticamente dal nome durante la digitazione e visualizzato nel campo Nome. Puoi aggiornare l'ID pool facendo clic su Modifica accanto all'ID pool.

    2. (Facoltativo) In Descrizione, inserisci una descrizione del pool.

    3. L'opzione Durata sessione è impostata per impostazione predefinita. Per inserire una durata personalizzata della sessione, fai clic su Modifica. La durata della sessione determina la durata di validità dei token di accesso di Google Cloud, delle sessioni di accesso alla console (federata) e delle sessioni di accesso a gcloud CLI di questo pool di personale. La durata deve essere superiore a 15 minuti (900 secondi) e inferiore a 12 ore (43200 secondi). Se la durata della sessione non è impostata, viene applicata per impostazione predefinita una durata di un'ora (3600 secondi).

    4. Per creare il pool nello stato abilitato, assicurati che Pool abilitato sia attivo.

    5. Per creare il pool di identità del personale, fai clic su Avanti.

gcloud

Per creare il pool di identità del personale, esegui il seguente comando:

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Sostituisci quanto segue:

  • WORKFORCE_POOL_ID: un ID che scegli per rappresentare la tua forza lavoro Google Cloud. Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di query nella documentazione dell'API.
  • ORGANIZATION_ID: l'ID numerico della tua organizzazione Google Cloud.
  • DISPLAY_NAME: facoltativo. Un nome visualizzato per il pool di identità della forza lavoro.
  • DESCRIPTION: facoltativo. Una descrizione del pool di identità della forza lavoro.
  • SESSION_DURATION: facoltativo. La durata della sessione, che determina per quanto tempo sono validi i token di accesso di Google Cloud, le sessioni di accesso della console (federata) e le sessioni di accesso con gcloud CLI da questo pool di forza lavoro. La durata deve essere superiore a 15 minuti (900 secondi) e inferiore a 12 ore (43200 secondi). Se la durata della sessione non è impostata, viene applicata per impostazione predefinita una durata di un'ora (3600 secondi).

Registra una nuova app Microsoft Entra

Questa sezione mostra come creare un'app Microsoft Entra utilizzando il portale Microsoft Azure.

  1. Registra una nuova applicazione Microsoft Entra.

  2. Nell'applicazione Microsoft Entra che hai registrato, crea un nuovo client secret. Prendi nota del client secret.

  3. Concedi le autorizzazioni API alla tua applicazione Microsoft Entra in modo che possa accedere alle informazioni su utenti e gruppi da Active Directory. Per concedere le autorizzazioni per l'API Microsoft Graph:

    1. Nell'applicazione, seleziona Autorizzazioni API.
    2. In Autorizzazioni configurate, fai clic su Aggiungi un'autorizzazione.
    3. Nella finestra di dialogo Richiedi autorizzazioni API, seleziona Microsoft Graph.
    4. Seleziona Autorizzazioni applicazione.
    5. Nella finestra di dialogo Seleziona autorizzazioni, procedi nel seguente modo:
      1. Nel campo di ricerca, inserisci User.ReadBasic.All.
      2. Fai clic su User.ReadBasic.All.
      3. Fai clic su Aggiungi autorizzazioni.
    6. Nella finestra di dialogo Richiedi autorizzazioni API, seleziona Microsoft Graph.
    7. Seleziona Autorizzazioni applicazione.
    8. Nella finestra di dialogo Seleziona autorizzazioni, procedi nel seguente modo:
      1. Nel campo di ricerca, inserisci GroupMember.Read.All.
      2. Fai clic su GroupMember.Read.All.
      3. Fai clic su Aggiungi autorizzazioni.
    9. In Autorizzazioni configurate, fai clic su Concedi il consenso amministratore per (nome di dominio).
    10. Quando ti viene chiesto di confermare, fai clic su .
  4. Per accedere ai valori necessari per configurare il provider del pool di risorse umane più avanti in questa guida, svolgi i seguenti passaggi:

    1. Vai alla pagina Panoramica dell'applicazione Microsoft Entra.
    2. Fai clic su Endpoint.
    3. Tieni presente i seguenti valori:

      • ID client:l'ID dell'app Microsoft Entra che hai registrato in precedenza in questa guida.
      • Client secret:il client secret che hai generato in precedenza in questa guida.
      • ID tenant:l'ID tenant dell'app Microsoft Entra che hai registrato in precedenza in questa guida.
      • URI dell'emittente:l'URI del documento di metadati OpenID Connect, senza /.well-known/openid-configuration. Ad esempio, se l'URL del documento dei metadati OpenID Connect è https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration, l'URI Issuer è https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.

Crea un provider di pool di identità per la forza lavoro

Per creare il provider, esegui il seguente comando:

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

Sostituisci quanto segue:

  • PROVIDER_ID: un ID provider univoco. Il prefisso gcp- è riservato e non può essere utilizzato in un ID provider.
  • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro a cui collegare il tuo IdP.
  • DISPLAY_NAME: un nome visualizzato facoltativo e intuitivo per il fornitore.
  • ISSUER_URI: il valore dell'URI emittente, formattato come https://sts.windows.net/TENANT_ID. Sostituisci TENANT_ID con l'ID tenant che hai annotato in precedenza.
  • ATTRIBUTE_MAPPING: una mappatura del gruppo e, facoltativamente, di altri attributi della rivendicazione Microsoft Entra agli attributi Google Cloud, ad esempio:google.groups=assertion.groups, google.subject=assertion.sub. Al gruppo viene concesso l'accesso ai dati BigQuery più avanti in questa guida.
  • APP_ISSUER_URI: l'URI dell'emittente dell'applicazione Microsoft Entra che hai annotato in precedenza.
  • APP_CLIENT_ID: l'ID client dell'emittente che hai annotato in precedenza.
  • APP_CLIENT_SECRET: il client secret dell'emittente che hai annotato in precedenza.
  • FILTER: il filtro utilizzato per richiedere asserzioni specifiche comunicate dall'IdP. Se specifichi --extra-attributes-type=azure-ad-groups-mail, --extra-attributes-filter vengono filtrati i claim di gruppo di un utente trasmessi dall'IDP. Per impostazione predefinita, vengono recuperati tutti i gruppi associati all'utente. I gruppi utilizzati devono avere la posta e la sicurezza abilitati. Per scoprire di più, consulta Utilizzare il parametro di query $search. È possibile recuperare un massimo di 100 gruppi.

    Il seguente esempio filtra i gruppi associati agli indirizzi email degli utenti che iniziano con gcp:

    --extra-attributes-filter='"mail:gcp"'
    Il seguente esempio filtra i gruppi associati agli utenti con indirizzi email che iniziano con gcp e un displayName contenente example:
    --extra-attributes-filter='"mail:gcp" AND "displayName:example"'

Crea criteri IAM

In questa sezione crei un criterio di autorizzazione IAM che concede il ruolo Visualizzatore dati BigQuery (roles/bigquery.dataViewer) al gruppo mappato nel progetto in cui sono archiviati i dati BigQuery. Il regolamento consente a tutte le identità presenti nella visualizzazione di gruppo di accedere ai dati delle tabelle e delle viste BigQuery archiviate nel progetto.

Per creare il criterio, esegui il comando seguente:

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"

Sostituisci quanto segue:

  • BIGQUERY_PROJECT_ID: l'ID progetto in cui sono archiviati i dati e i metadati BigQuery
  • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro
  • GROUP_ID: il gruppo, ad esempio admin-group@example.com

Accedere ai dati di BigQuery da Power BI Desktop

Per accedere ai dati di BigQuery da Power BI Desktop:

  1. Apri Power BI.
  2. Fai clic su Get Data (Carica dati).
  3. Fai clic su Database.
  4. Nell'elenco dei database, seleziona Google BigQuery (ID Microsoft Entra) (beta).
  5. Fai clic su Connetti.
  6. Compila i seguenti campi obbligatori:

    • ID progetto di fatturazione:l'ID progetto di fatturazione.
    • URI pubblico:l'URI di Google Cloud, formattato come segue:

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

      Sostituisci quanto segue:

      • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro.

      • PROVIDER_ID: l'ID fornitore del pool di identità della forza lavoro.

  7. Fai clic su Ok.

  8. Fai clic su Avanti.

  9. Fai clic su Seleziona i dati.

Se ti viene chiesto di accedere, utilizza un'identità Microsoft Entra che sia membro del gruppo.

Ora puoi utilizzare i dati di BigQuery in Power BI Desktop.

Accedere ai dati di BigQuery da Power BI Web

Per accedere ai dati BigQuery da Power BI Web, segui questi passaggi:

  1. Vai a Power BI Web.

  2. Fai clic su Power Query per aggiungere una nuova origine dati.

  3. Fai clic su Get data (Raccogli dati).

  4. Nell'elenco, individua e seleziona Google BigQuery (ID Microsoft Entra) (beta).

  5. Compila i seguenti campi obbligatori:

    • ID progetto di fatturazione:il progetto di fatturazione Google Cloud

    • URI pubblico:l'URI pubblico, formattato come segue:

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

      Sostituisci quanto segue:

      • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro

      • PROVIDER_ID: l'ID fornitore del pool di identità della forza lavoro

  6. Fai clic su Credenziali di connessione > Tipo di autenticazione.

  7. Seleziona Account aziendale.

  8. Fai clic su Accedi.

  9. Fai clic su Avanti.

  10. Fai clic su Seleziona i dati.

Ora puoi utilizzare i dati di BigQuery in Power BI Web.

Passaggi successivi