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' Google Cloud organizzazione.
  2. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

    gcloud init

    Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a 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, la registrazione dettagliata degli audit della federazione delle identità per la forza lavoro utilizza Cloud Logging. Per scoprire di più sui prezzi di Logging, consulta Prezzi di Google Cloud Observability.

Ruoli obbligatori

Questa sezione descrive i ruoli necessari per amministratori e 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 del pool di 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 IAM Proprietario (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 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 comando seguente:

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à per la forza lavoro.
  • GROUP_ID: l'ID gruppo, ad esempio admin-group@altostrat.com. Per visualizzare un elenco degli identificatori delle entità comuni, consulta 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 del 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 il comando seguente:

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 Google Cloud pool di forza lavoro. L'ID pool deve essere univoco a livello globale in tutti i pool di identità per la forza lavoro in 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 per il pool di identità per la forza lavoro. Google Cloud I pool di identità per la forza lavoro sono disponibili in tutti i progetti e le cartelle dell'organizzazione.
  • DISPLAY_NAME: (facoltativo) Un nome visualizzato per il pool di identità per la forza lavoro.
  • DESCRIPTION: (facoltativo) Una descrizione del pool di identità per la forza lavoro.
  • SESSION_DURATION: (facoltativo) La durata della sessione, espressa come un 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 (federate) alla console e le sessioni di accesso a gcloud CLI da questo pool di forza lavoro. La durata della sessione è impostata per impostazione predefinita su 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 Google Cloud console, 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 pool di identità per la forza lavoro. I pool di identità per la forza lavoro sono disponibili in tutti i progetti e le cartelle di un'organizzazione.

  3. Fai clic su Crea pool e procedi come segue:

    1. Nel campo Nome, inserisci il nome visualizzato del pool. L'ID pool viene derivato automaticamente dal nome durante la digitazione e viene visualizzato sotto il 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à per la forza lavoro è impostata per impostazione predefinita su un'ora (3600 secondi). La durata della sessione determina per quanto tempo sono validi i token di accesso Google Cloud , le sessioni di accesso (federate) alla console, e le sessioni di accesso a 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. 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 come segue:
      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 come segue:
      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 forza lavoro più avanti in questa guida:

    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 emittente: l'URI del documento di metadati OpenID Connect, omettendo /.well-known/openid-configuration. Ad esempio, se l' URL del documento di 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 del pool di identità per la forza lavoro

Per creare il provider, esegui il comando seguente:

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 provider univoco. Il prefisso gcp- è riservato e non può essere utilizzato in un ID provider.

  • WORKFORCE_POOL_ID: l'ID del pool di identità per la forza lavoro a cui connettere l'IdP.

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

  • 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 dell'attestazione Microsoft Entra agli Google Cloud attributi, 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 saperne di più, consulta Mappatura degli attributi.

  • APP_ISSUER_URI: l'URI emittente dell'applicazione Microsoft Entra che hai annotato in precedenza.

  • APP_CLIENT_ID: l'ID client emittente che hai annotato in precedenza.

  • APP_CLIENT_SECRET: il client secret emittente che hai annotato in precedenza.

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

    • azure-ad-groups-mail: gli indirizzi email dei gruppi vengono recuperati dall'IdP, ad esempio admin-group@altostrat.com.

    • azure-ad-groups-id: gli UUID che rappresentano i gruppi vengono recuperati dall'IdP, ad esempio abcdefgh-0123-0123-abcdef.

    • azure-ad-groups-display-name: i nomi visualizzati dei gruppi vengono recuperati dall'IdP, ad esempio admin-group-display-name.

  • EXTRA_FILTER: il filtro utilizzato per richiedere che vengano trasmesse attestazioni specifiche dall'IdP. Se specifichi --extra-attributes-type=azure-ad-groups-mail, --extra-attributes-filter filtra le attestazioni dei gruppi 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 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 che contiene example:
    --extra-attributes-filter='"mail:gcp" AND "displayName:example"'

  • La registrazione dettagliata degli audit della federazione delle identità per la forza lavoro registra le informazioni ricevute dall'IdP in Logging. La registrazione dettagliata degli audit può aiutarti a risolvere i problemi di configurazione del provider del pool di identità per la forza lavoro. Per scoprire come risolvere gli errori di mappatura degli attributi con la registrazione dettagliata degli audit, consulta Errori generali di mappatura degli attributi. Per scoprire di più sui prezzi di Logging, consulta Prezzi di Google Cloud Observability.

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

Crea policy di autorizzazione

In questa sezione, crei una policy di autorizzazione che concede il ruolo Visualizzatore dati BigQuery (roles/bigquery.dataViewer) al gruppo mappato nel progetto in cui sono archiviati i dati BigQuery. La policy 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à per la forza lavoro.
  • GROUP_ID: l'identificatore del gruppo, che dipende dal valore di --extra-attributes-type utilizzato per creare il provider del pool di identità per la 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.

    • azure-ad-groups-display-name: l'identificatore del gruppo è un nome visualizzato, ad esempio admin-group-display-name.

Accedi 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' Google Cloud URI, formattato come segue:

      //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à per la 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.

Accedi 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 Carica 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 come segue:

      //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à per la forza lavoro.

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