Auf BigQuery-Daten in Power BI mit Workforce Identity Federation und Microsoft Entra zugreifen

In diesem Leitfaden erfahren Sie, wie Sie Nutzern in Microsoft Entra-Gruppen mithilfe von Workforce Identity Federation den Zugriff auf BigQuery-Daten in Power BI ermöglichen.

Microsoft Entra ist der Identitätsanbieter (Identity Provider, IdP). Gruppenanforderungen von Microsoft Entra werden Google Cloud zugeordnet. Gruppen erhalten IAM-Berechtigungen (Identity and Access Management) für den Zugriff auf die BigQuery-Daten.

Diese Anleitung enthält eine Anleitung für Power BI Desktop oder Web.

Hinweise

  1. Sie müssen eine Google Cloud-Organisation eingerichtet haben.

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

    gcloud init

  3. Sie benötigen Zugriff auf Microsoft Entra und Microsoft Graph.

  4. Sie müssen Power BI eingerichtet haben.

Erforderliche Rollen

In diesem Abschnitt werden Rollen beschrieben, die für Administratoren und Ressourcen erforderlich sind.

Rollen für Administratoren

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle IAM-Mitarbeiterpool-Administrator (roles/iam.workforcePoolAdmin) für die Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren der Mitarbeiteridentitätsföderation benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Alternativ enthält die einfache Rolle „IAM-Inhaber“ (roles/owner) auch Berechtigungen zum Konfigurieren der Identitätsföderation. In einer Produktionsumgebung sollten Sie keine einfachen Rollen zuweisen, Sie können sie aber in einer Entwicklungs- oder Testumgebung gewähren.

Rollen für föderierte Identitäten

Power BI sendet den Parameter userProject während des Tokenaustauschs. Aus diesem Grund müssen Sie Ihren Administrator bitten, den föderierten Identitäten im Abrechnungsprojekt die Rolle "Service Usage-Nutzer" (roles/serviceusage.serviceUsageConsumer) zuzuweisen.

Führen Sie den folgenden Befehl aus, um die Rolle einer Gruppe von föderierten Identitäten zuzuweisen:

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"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Abrechnungsprojekts.
  • WORKFORCE_POOL_ID: die ID des Mitarbeiteridentitätspools.
  • GROUP_ID: die Gruppen-ID, z. B. admin-group@example.com. Eine Liste der allgemeinen Hauptkonto-Kennungen finden Sie unter Hauptkonto-Kennungen.

Workforce Identity-Pool erstellen

In diesem Abschnitt wird beschrieben, wie Sie den Workforce Identity-Pool erstellen. Den Anbieter des Mitarbeiteridentitätspools erstellen Sie später in dieser Anleitung.

Console

So erstellen Sie den Workforce Identity-Pool:

  1. Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:

    Zu Workforce Identity-Pools

  2. Klicken Sie auf Pool erstellen und gehen Sie so vor:

    1. Geben Sie im Feld Name den Anzeigenamen des Pools ein. Die Pool-ID wird während der Eingabe automatisch aus dem Namen abgeleitet und im Feld Name angezeigt. Sie können die Pool-ID aktualisieren, indem Sie neben der Pool-ID auf Bearbeiten klicken.

    2. Optional: Geben Sie unter Beschreibung eine Beschreibung des Pools ein.

    3. Die Sitzungsdauer ist standardmäßig festgelegt. Klicken Sie auf Bearbeiten, um eine benutzerdefinierte Sitzungsdauer einzugeben. Die Sitzungsdauer bestimmt, wie lange die Google Cloud-Zugriffstokens, die Console-Anmeldesitzungen (föderiert) und die gcloud CLI-Anmeldungssitzungen aus diesem Workforce-Pool gültig sind. Die Dauer muss mehr als 15 Minuten (900s) und weniger als 12 Stunden (43.200s) betragen. Wenn keine Sitzungsdauer festgelegt ist, wird standardmäßig eine Dauer von einer Stunde (3.600 s) verwendet.

    4. Damit der Pool im aktivierten Status erstellt werden kann, muss Aktivierter Pool aktiviert sein.

    5. Klicken Sie zum Erstellen des Workforce Identity-Pools auf Weiter.

gcloud

Führen Sie folgenden Befehl aus, um den Workforce Identity-Pool zu erstellen:

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

Ersetzen Sie Folgendes:

  • WORKFORCE_POOL_ID: Eine ID, die Sie wählen, um den Google Cloud-Workforce-pool darzustellen. Informationen zum Formatieren der ID finden Sie in der API-Dokumentation im Abschnitt Abfrageparameter.
  • ORGANIZATION_ID: die numerische Organisations-ID Ihrer Google Cloud-Organisation.
  • DISPLAY_NAME: Optional. Ein Anzeigename für Ihren Workforce Identity-Pool.
  • DESCRIPTION: Optional. Beschreibung des Workforce Identity-Pools.
  • SESSION_DURATION: Optional. Die Sitzungsdauer, die bestimmt, wie lange die Google Cloud-Zugriffstokens, die Console (föderiert)-Anmeldesitzungen und die gcloud CLI-Anmeldungssitzungen aus diesem Workforce-Pool gültig sind. Die Dauer muss mehr als 15 Minuten (900s) und weniger als 12 Stunden (43.200s) betragen. Wenn keine Sitzungsdauer festgelegt ist, wird standardmäßig eine Dauer von einer Stunde (3.600 s) verwendet.

Neue Microsoft Entra-Anwendung registrieren

In diesem Abschnitt erfahren Sie, wie Sie eine Microsoft Entra-Anwendung mithilfe des Microsoft Azure-Portals erstellen.

  1. Registrieren Sie eine neue Microsoft Entra-Anwendung.

  2. Erstellen Sie einen neuen Clientschlüssel in der von Ihnen registrierten Microsoft Entra-Anwendung. Notieren Sie sich den Clientschlüssel.

  3. Gewähren Sie Ihrer Microsoft Entra-Anwendung API-Berechtigungen, damit sie auf Nutzer- und Gruppeninformationen aus Active Directory zugreifen kann. So gewähren Sie Berechtigungen für die Microsoft Graph API:

    1. Wählen Sie in Ihrer Anwendung API-Berechtigungen aus.
    2. Klicken Sie unter Konfigurierte Berechtigungen auf Berechtigung hinzufügen.
    3. Wählen Sie im Dialogfeld API-Berechtigungen anfordern die Option Microsoft Graph aus.
    4. Wählen Sie Anwendungsberechtigungen aus.
    5. Gehen Sie im Dialogfeld Berechtigungen auswählen so vor:
      1. Geben Sie im Suchfeld User.ReadBasic.All ein.
      2. Klicken Sie auf User.ReadBasic.All.
      3. Klicken Sie auf Berechtigungen hinzufügen.
    6. Wählen Sie im Dialogfeld API-Berechtigungen anfordern die Option Microsoft Graph aus.
    7. Wählen Sie Anwendungsberechtigungen aus.
    8. Gehen Sie im Dialogfeld Berechtigungen auswählen so vor:
      1. Geben Sie im Suchfeld GroupMember.Read.All ein.
      2. Klicken Sie auf GroupMember.Read.All.
      3. Klicken Sie auf Berechtigungen hinzufügen.
    9. Klicken Sie unter Konfigurierte Berechtigungen auf Administratoreinwilligung erteilen für (Domainname).
    10. Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Ja.
  4. So greifen Sie auf die Werte zu, die Sie später in dieser Anleitung zum Konfigurieren des Workforce-Poolanbieters konfigurieren müssen:

    1. Rufen Sie die Seite Übersicht der Microsoft Entra-Anwendung auf.
    2. Klicken Sie auf Endpunkte.
    3. Beachten Sie die folgenden Werte:

      • Client-ID: Die ID der Microsoft Entra-Anwendung, die Sie zuvor in dieser Anleitung registriert haben.
      • Clientschlüssel: der Clientschlüssel, den Sie zuvor in dieser Anleitung generiert haben.
      • Mandanten-ID: die Mandanten-ID der Microsoft Entra-Anwendung, die Sie zuvor in dieser Anleitung registriert haben.
      • Aussteller-URI: der URI des OpenID Connect-Metadatendokuments ohne /.well-known/openid-configuration. Wenn beispielsweise die URL des OpenID Connect-Metadatendokuments https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration lautet, ist der Aussteller-URI https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.

Workforce Identity-Anbieter erstellen

Führen Sie den folgenden Befehl aus, um den Anbieter zu erstellen:

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

Ersetzen Sie Folgendes:

  • PROVIDER_ID: eine eindeutige Anbieter-ID Das Präfix gcp- ist reserviert und kann nicht in einer Anbieter-ID verwendet werden.
  • WORKFORCE_POOL_ID: die ID des Mitarbeiteridentitätspools, mit dem Ihr IdP verbunden werden soll
  • DISPLAY_NAME: ein optionaler nutzerfreundlicher Anzeigename für den Anbieter.
  • ISSUER_URI: Wert des Aussteller-URI im Format https://sts.windows.net/TENANT_ID. Ersetzen Sie TENANT_ID durch die Mandanten-ID, die Sie zuvor notiert haben.
  • ATTRIBUTE_MAPPING: eine Zuordnung der Gruppe und optional anderer Attribute aus der Microsoft Entra-Anforderung zu Google Cloud-Attributen, z. B. google.groups=assertion.groups, google.subject=assertion.sub. Der Gruppe wird weiter unten in dieser Anleitung Zugriff auf BigQuery-Daten gewährt.
  • APP_ISSUER_URI: der Aussteller-URI der Microsoft Entra-Anwendung, die Sie zuvor notiert haben.
  • APP_CLIENT_ID: die Client-ID des Ausstellers, die Sie zuvor notiert haben.
  • APP_CLIENT_SECRET: der Clientschlüssel des Ausstellers, den Sie zuvor notiert haben.
  • FILTER: der Filter, mit dem bestimmte Assertions angefordert werden, die vom IdP übergeben wurden. Durch Angabe von --extra-attributes-type=azure-ad-groups-mail filtert --extra-attributes-filter nach der Gruppenanforderungen eines Nutzers, die vom IdP übergeben werden. Standardmäßig werden alle mit dem Nutzer verknüpften Gruppen abgerufen. Bei den verwendeten Gruppen müssen E-Mails und Sicherheit aktiviert sein. Weitere Informationen finden Sie unter Suchparameter $search verwenden. Es können maximal 100 Gruppen abgerufen werden.

    Im folgenden Beispiel wird nach Gruppen gefiltert, die mit E-Mail-Adressen von Nutzern verknüpft sind, die mit gcp beginnen:

    --extra-attributes-filter='"mail:gcp"'
    Im folgenden Beispiel werden Gruppen gefiltert, die mit Nutzern verknüpft sind, deren E-Mail-Adressen mit gcp beginnen und einen displayName enthalten, der example enthält:
    --extra-attributes-filter='"mail:gcp" AND "displayName:example"'

IAM-Richtlinien erstellen

In diesem Abschnitt erstellen Sie eine IAM-Zulassungsrichtlinie, die der zugeordneten Gruppe in dem Projekt, in dem Ihre BigQuery-Daten gespeichert sind, die Rolle "BigQuery-Datenbetrachter" (roles/bigquery.dataViewer) zuweist. Mit der Richtlinie können alle Identitäten in der Gruppe Daten aus BigQuery-Tabellen und -Ansichten aufrufen, die im Projekt gespeichert sind.

Führen Sie folgenden Befehl aus, um die Richtlinie zu erstellen:

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"

Ersetzen Sie Folgendes:

  • BIGQUERY_PROJECT_ID: die Projekt-ID, unter der Ihre BigQuery-Daten und -Metadaten gespeichert sind.
  • WORKFORCE_POOL_ID: die ID des Workforce Identity-Pools
  • GROUP_ID: die Gruppe, z. B. admin-group@example.com

Über Power BI Desktop auf BigQuery-Daten zugreifen

So greifen Sie von Power BI Desktop auf BigQuery-Daten zu:

  1. Öffnen Sie Power BI.
  2. Klicken Sie auf Daten abrufen.
  3. Klicken Sie auf Datenbank.
  4. Wählen Sie in der Liste der Datenbanken Google BigQuery (Microsoft Entra-ID) (Beta) aus.
  5. Klicken Sie auf Verbinden.
  6. Füllen Sie die folgenden Pflichtfelder aus:

    • Abrechnungsprojekt-ID: Die ID des Abrechnungsprojekts.
    • Zielgruppen-URI: Der Google Cloud-URI, der so formatiert ist:

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

      Ersetzen Sie Folgendes:

      • WORKFORCE_POOL_ID: die ID des Workforce Identity-Pools

      • PROVIDER_ID: die ID des Anbieters des Mitarbeiteridentitätspools.

  7. Klicken Sie auf OK.

  8. Klicken Sie auf Weiter.

  9. Klicken Sie auf Daten auswählen.

Wenn Sie aufgefordert werden, sich anzumelden, verwenden Sie eine Microsoft Entra-Identität, die Mitglied der Gruppe ist.

Sie können jetzt Daten aus BigQuery in Power BI Desktop verwenden.

Über Power BI Web auf BigQuery-Daten zugreifen

So greifen Sie über Power BI Web auf BigQuery-Daten zu:

  1. Gehen Sie zu Power BI Web.

  2. Klicken Sie auf Leistungsabfrage, um eine neue Datenquelle hinzuzufügen.

  3. Klicken Sie auf Daten abrufen.

  4. Wählen Sie in der Liste die Option Google BigQuery (Microsoft Entra-ID) (Beta) aus.

  5. Füllen Sie die folgenden Pflichtfelder aus:

    • Abrechnungsprojekt-ID: das Google Cloud-Abrechnungsprojekt

    • Zielgruppen-URI: Der Zielgruppen-URI, der so formatiert ist:

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

      Ersetzen Sie Folgendes:

      • WORKFORCE_POOL_ID: die ID des Workforce Identity-Pools

      • PROVIDER_ID: die ID des Anbieters des Mitarbeiteridentitätspools

  6. Klicken Sie auf Anmeldedaten für die Verbindung > Authentifizierungsart.

  7. Wählen Sie Organisationskonto aus.

  8. Klicken Sie auf Anmelden.

  9. Klicken Sie auf Weiter.

  10. Klicken Sie auf Daten auswählen.

Sie können jetzt Daten aus BigQuery in Power BI Web verwenden.

Nächste Schritte