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). Le attestazioni dei gruppi di Microsoft Entra vengono mappate 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. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

    gcloud init

    Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

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

Costi

La federazione delle identità per la forza lavoro è disponibile come funzionalità senza costi. Tuttavia, l'audit logging dettagliato della federazione delle identità per la forza lavoro utilizza Cloud Logging. Per informazioni sui prezzi di Logging, consulta Prezzi di Google Cloud Observability.

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à della forza lavoro, chiedi all'amministratore di concederti il ruolo IAM Amministratore pool di identità della forza lavoro (roles/iam.workforcePoolAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci 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 devi concedere ruoli di base in un ambiente di produzione, ma puoi concederli 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 utilizzo servizi (roles/serviceusage.serviceUsageConsumer) alle identità federate nel progetto di fatturazione.

Per concedere il ruolo a un gruppo di identità federate, esegui questo 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@altostrat.com. Per visualizzare un elenco degli identificatori delle entità comuni, vedi Identificatori delle entità.

Crea un pool di identità per la forza lavoro

Questa sezione descrive come creare il pool di identità per la forza lavoro. Il provider di pool di identità per la forza lavoro viene creato più avanti in questa guida.

gcloud

Per creare il pool di identità per la forza lavoro, esegui questo 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 il tuo pool di 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 dell'organizzazione Google Cloud per il pool di identità della forza lavoro. I pool di identità della forza lavoro sono disponibili in tutti i progetti e nelle cartelle dell'organizzazione.
  • DISPLAY_NAME: (Facoltativo) Un nome visualizzato per il tuo pool di identità della forza lavoro.
  • DESCRIPTION: (Facoltativo) Una descrizione del pool di identità della forza lavoro.
  • SESSION_DURATION: (Facoltativo) La durata della sessione, espressa come numero a cui è aggiunto s, ad esempio 3600s. La durata della sessione determina per quanto tempo sono validi i token di accesso Google Cloud , le sessioni di accesso alla console (federata) e le sessioni di accesso a gcloud CLI di questo pool di forza lavoro. Per impostazione predefinita, la durata della sessione è di un'ora (3600 secondi). Il valore della durata della sessione deve essere compreso tra 15 minuti (900 secondi) e 12 ore (43.200 secondi).

Console

Per creare il pool di identità per la forza lavoro:

  1. Nella console Google Cloud , vai alla pagina Pool di identità per la forza lavoro:

    Vai a Pool di identità per la forza lavoro

  2. Seleziona l'organizzazione per il tuo pool di identità della forza lavoro. I pool di identità del personale sono disponibili in tutti i progetti e le cartelle di un' organizzazione.

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

    1. Nel campo Nome, inserisci il nome visualizzato del pool. L'ID pool viene derivato automaticamente dal nome durante la digitazione e viene 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. Per creare il pool di identità per la forza lavoro, fai clic su Avanti.

La durata della sessione del pool di identità della forza lavoro è impostata su un'ora (3600 secondi) per impostazione predefinita. La durata della sessione determina per quanto tempo sono validi i Google Cloud token di accesso, console (federata) e le sessioni di accesso gcloud CLI da questo pool di forza lavoro. Dopo aver creato il pool, puoi aggiornarlo per impostare una durata della sessione personalizzata. La durata della sessione deve essere compresa tra 15 minuti (900 secondi) e 12 ore (43.200 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 di utenti e gruppi da Active Directory. Per concedere le autorizzazioni per l'API Microsoft Graph:

    1. Nella tua 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 dominio).
    10. Quando ti viene chiesto di confermare, fai clic su .
  4. Per accedere ai valori necessari per configurare il fornitore del pool di forza lavoro più avanti in questa guida, procedi nel seguente modo:

    1. Vai alla pagina Panoramica dell'applicazione Microsoft Entra.
    2. Fai clic su Endpoint.
    3. Prendi nota dei 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, omettendo /.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 emittente è 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 questo comando:

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

Sostituisci quanto segue:

  • WORKFORCE_PROVIDER_ID: un ID fornitore univoco. Il prefisso gcp- è riservato e non può essere utilizzato in un ID fornitore.

  • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro a cui connettere il tuo IdP.

  • DISPLAY_NAME: un nome visualizzato facoltativo e facile da ricordare per il fornitore.

  • ISSUER_URI: il valore dell'URI dell'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 dell'attestazione Microsoft Entra agli attributiGoogle 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.

    Per ulteriori informazioni, vedi Mappatura degli attributi.

  • APP_ISSUER_URI: l'URI 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.

  • EXTRA_GROUPS_TYPE: il tipo di identificatore di gruppo, che può essere uno dei seguenti:

    • azure-ad-groups-mail: gli indirizzi email del gruppo vengono recuperati dal provider di identità, ad esempio: admin-group@altostrat.com.

    • azure-ad-groups-id: gli UUID che rappresentano i gruppi vengono recuperati dal provider di identità, ad esempio: abcdefgh-0123-0123-abcdef.

  • EXTRA_FILTER: il filtro utilizzato per richiedere che vengano trasmesse asserzioni specifiche dal provider di identità. Specificando --extra-attributes-type=azure-ad-groups-mail, --extra-attributes-filter filtri per le rivendicazioni di gruppo di un utente trasmesse dall'IdP. Per impostazione predefinita, vengono recuperati tutti i gruppi associati all'utente. I gruppi utilizzati devono essere abilitati per la posta e la sicurezza. Per saperne di più, consulta Utilizzare il parametro di query $search.

    Il seguente esempio filtra i gruppi associati a indirizzi email utente che iniziano con gcp:

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

  • La registrazione dettagliata dei log di controllo della federazione delle identità per la forza lavoro registra le informazioni ricevute dal tuo IdP in Logging. L'audit logging dettagliato può aiutarti a risolvere i problemi di configurazione del provider del pool di identità della forza lavoro. Per scoprire come risolvere i problemi relativi agli errori di mappatura degli attributi con la registrazione dettagliata degli audit, vedi Errori generali di mappatura degli attributi. Per informazioni sui prezzi di Logging, consulta la pagina Prezzi di Google Cloud Observability.

    Per disattivare la registrazione di controllo dettagliata per un provider di pool di identità per la forza lavoro, ometti il flag --detailed-audit-logging quando esegui gcloud iam workforce-pools providers create. Per disattivare il logging di controllo dettagliato, puoi anche aggiornare il fornitore.

Crea criteri IAM

In questa sezione, crei una policy 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 criterio consente a tutte le identità del gruppo di visualizzare i dati delle tabelle e delle viste BigQuery archiviate nel progetto.

Per creare la policy, esegui questo comando:

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: l'identificatore del gruppo, che dipende dal valore di --extra-attributes-type utilizzato per creare il provider di identità del pool di forza lavoro, come segue:

    • azure-ad-groups-mail: l'identificatore del gruppo è un indirizzo email, ad esempio admin-group@altostrat.com

    • azure-ad-groups-id: l'identificatore del gruppo è un UUID per il gruppo, ad esempio abcdefgh-0123-0123-abcdef

Accedere ai dati BigQuery da Power BI Desktop

Per accedere ai dati BigQuery da Power BI Desktop:

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

    • ID progetto di fatturazione:l'ID progetto di fatturazione.
    • URI Audience:l'URI Google Cloud , formattato nel seguente modo:

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

      Sostituisci quanto segue:

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

      • WORKFORCE_PROVIDER_ID: l'ID del provider del pool di identità per la 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 BigQuery da Power BI Web

Per accedere ai dati BigQuery da Power BI Web:

  1. Vai a Power BI Web.

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

  3. Fai clic su Recupera dati.

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

  5. Compila i seguenti campi obbligatori:

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

    • URI Audience:l'URI Audience, formattato nel seguente modo:

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

      Sostituisci quanto segue:

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

      • WORKFORCE_PROVIDER_ID: l'ID provider del pool di identità forza lavoro

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

  7. Seleziona Account dell'organizzazione.

  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