Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Dienst, der in Google Cloud ausgeführt wird, authentifiziert sich normalerweise bei Microsoft Entra ID mit einem gespeicherten Microsoft Entra Anwendungsgeheimnis, damit er Azure Ressourcen erreichen kann. Sie müssen diesen geheimen Schlüssel schützen und drehen, und der Dienst steht vor einem Ausfall, wenn der geheime Schlüssel abläuft, bevor Sie ihn ersetzen.
Der Workload-Identitätsverbund entfernt diesen gespeicherten geheimen Schlüssel. Sie konfigurieren eine Microsoft Entra Anwendung, um dem ID-Token zu vertrauen, das Google auf ein Google Cloud-Dienstkonto ausgibt, und Ihr Dienst wechselt sein von Google ausgestelltes Token für ein Microsoft Entra Zugriffstoken, anstatt eine Anmeldeinformationen zu speichern.
In diesem Lernprogramm identifizieren Sie ein Google Cloud-Dienstkonto, verbinden es mit einer Microsoft Entra-Anwendung und tauschen ein von Google ausgestelltes ID-Token für ein Microsoft Entra Zugriffstoken aus, das Ihre Workload zum Aufrufen einer Azure Ressource verwendet, z. B. Azure Blob Storage.
Das Lernprogramm enthält drei sequenzielle Teile, die zu einem abgeschlossenen Szenario erstellt werden. Jeder Teil hängt von der Ausgabe des Webparts ab.
In diesem Tutorial lernen Sie:
- Identifizieren Sie ein Google Cloud-Dienstkonto, und rufen Sie ihre eindeutige ID ab.
- Konfigurieren Sie eine Microsoft Entra Anwendung, um dem von Google ausgestellten Token zu vertrauen.
- Exchange ein Google-ID-Token für ein Microsoft Entra Zugriffstoken und zugriff auf eine Azure Ressource.
Das folgende Diagramm zeigt den Workload-Identitätsverbundablauf: Eine Workload ruft ein Token von einem externen Identitätsanbieter ab, austauscht es mit dem Microsoft Identity Platform für ein Zugriffstoken und verwendet dieses Zugriffstoken, um eine Azure Ressource zu erreichen. In diesem Lernprogramm ist der externe Identitätsanbieter Google Cloud und das Token ein von Google ausgestelltes ID-Token.
Voraussetzungen
- Ein Microsoft Entra Mandant und ein Azure-Abonnement. Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
- Ein Google Cloud-Projekt und eine Workload, die auf einem Google Cloud-Dienst ausgeführt wird, der ein ID-Token für ein Dienstkonto abrufen kann, z. B. App Engine oder Compute Engine.
- Zugriff auf die Google Cloud-Konsole mit Der Berechtigung zum Anzeigen von Dienstkonten in IAM & Admin.
- Das Befehlszeilentool Azure CLI (
az) installiert und konfiguriert, um Ihren Mandanten zu erreichen. Sie können auch die Microsoft Entra Schritte im Microsoft Entra Admin Center ausführen. - Berechtigung zum Hinzufügen von Verbundidentitätsanmeldeinformationen zu einer App-Registrierung oder verwalteten Identität. Um einer App-Registrierung eine Verbundanmeldeinformationen hinzuzufügen, muss Ihr Konto ein Besitzer der App sein oder eine der Rollen "Anwendungsadministrator", "Anwendungsentwickler" oder "Cloudanwendungsadministrator" besitzen oder über die
microsoft.directory/applications/credentials/updateBerechtigung verfügen.
Teil 1: Identifizieren eines Google Cloud-Dienstkontos
Ihre Google Cloud-Workload benötigt eine Identität, für die Google Token ausstellen kann. Google Cloud-Dienstkonten stellen diese Identität bereit. Verwenden Sie das Standarddienstkonto Ihres Google Cloud-Projekts, oder erstellen Sie ein dediziertes Dienstkonto für Ihre Workload.
Google gibt ID-Token für ein Dienstkonto aus, bei dem der sub Anspruch (Antragsteller) die eindeutige ID des Dienstkontos und der iss (Aussteller) Anspruch ist https://accounts.google.com. Sie verwenden beide Werte, um die Vertrauensstellung für die Microsoft Entra Anwendung in Teil 2 zu konfigurieren.
Wechseln Sie in der Google Cloud-Konsole zu DEN IAM & Admin>Service-Konten.
Wählen Sie das Dienstkonto aus, unter dem Ihre Workload ausgeführt wird.
Suchen Sie in den Details des Dienstkontos ihre eindeutige ID , und kopieren Sie den Wert. Dieser Wert ist der
subAnspruch in den Token, die Google für das Dienstkonto ausgibt.
Zeichnen Sie die eindeutige ID als <service-account-unique-id>. Sie verwenden sie als Betreff der Verbundidentitätsanmeldeinformationen in Teil 2.
Teil 2: Konfigurieren einer Microsoft Entra-Anwendung, um dem Google-Token zu vertrauen
In diesem Teil fügen Sie einer Microsoft Entra Anwendung eine Verbundidentitäts-Anmeldeinformationen hinzu, sodass Microsoft Entra ID den ID-Token vertraut, die Google für Ihr Dienstkonto ausgibt. Eine Verbundidentitätsanmeldeinformation benötigt drei Eingaben:
-
subject: muss mit demsubAnspruch im von Google ausgestellten Token übereinstimmen – der eindeutigen ID des Dienstkontos,<service-account-unique-id>. -
issuer: muss mit demissAnspruch übereinstimmen. Für Google Cloud isthttps://accounts.google.comdieser Wert . Der Aussteller muss die OpenID Connect-Ermittlungsspezifikation einhalten, da Microsoft Entra ID die Aussteller-URL verwendet, um die Schlüssel abzurufen, die das Token überprüfen. -
audiences: muss mit demaudAnspruch übereinstimmen. Verwenden Sie den Microsoft empfohlenen Wertapi://AzureADTokenExchange.
Eine Microsoft Entra-Anwendung unterstützt eine begrenzte Anzahl von Verbundidentitätsanmeldeinformationen. Informationen zum aktuellen Grenzwert und anderen Einschränkungen finden Sie unter Wichtige Überlegungen und Einschränkungen für Verbundidentitätsanmeldeinformationen.
Erstellen Sie eine Datei namens
credential.jsonmit folgendem Inhalt. Ersetzen Sie durch<service-account-unique-id>die eindeutige ID, die Sie in Teil 1 kopiert haben.{ "name": "AccessFromGoogle", "issuer": "https://accounts.google.com", "subject": "<service-account-unique-id>", "audiences": ["api://AzureADTokenExchange"], "description": "Federated credential for a Google Cloud workload" }Fügen Sie der App-Registrierung die Verbundidentitätsanmeldeinformationen hinzu. Ersetzen Sie sie durch
<your-app-id>die Anwendungs-ID (Client) Ihrer App-Registrierung.az ad app federated-credential create --id <your-app-id> --parameters credential.json
Sie können die Verbundanmeldeinformationen auch im Microsoft Entra Admin Center hinzufügen. Wechseln Sie zu App-Registrierungen> Ihrer App >Zertifikate und geheimen>VerbundanmeldeinformationenHinzufügen von Anmeldeinformationen>, und wählen Sie das Szenario "Sonstiger Aussteller" aus. Geben Sie https://accounts.google.com als Aussteller und die eindeutige ID des Dienstkontos als Betreff an. Die detaillierten Schritte finden Sie unter Konfigurieren einer App, um einem externen Identitätsanbieter zu vertrauen.
Verwenden Sie den folgenden Befehl, um die Anmeldeinformationen für eine vom Benutzer zugewiesene verwaltete Identität anstelle einer App-Registrierung zu konfigurieren. Sie benötigen die Rolle "Besitzer" oder "Mitwirkender" für die verwaltete Identität. Die detaillierten Schritte finden Sie unter Konfigurieren einer vom Benutzer zugewiesenen verwalteten Identität, um einem externen Identitätsanbieter zu vertrauen.
az identity federated-credential create \
--name AccessFromGoogle \
--identity-name <your-identity-name> \
--resource-group <your-resource-group> \
--issuer https://accounts.google.com \
--subject <service-account-unique-id> \
--audience api://AzureADTokenExchange
Gewähren Sie Ihrer App oder verwalteten Identität Zugriff auf die Azure Ressourcen, die Ihre Workload aufruft, z. B. eine Rollenzuweisung für Ihr Speicherkonto.
Teil 3: Exchange ein Google-Token für ein Microsoft Entra Zugriffstoken
In diesem Teil erhält Ihre Workload ein von Google ausgestelltes ID-Token für sein Dienstkonto und tauscht es für ein Microsoft Entra Zugriffstoken aus, das zum Aufrufen einer Azure Ressource verwendet wird.
Ein Google Cloud-Dienst, z. B. App Engine oder Compute Engine, fordert ein ID-Token für sein Dienstkonto vom Google-Metadatenserver an. Google verwaltet die Signaturschlüssel, sodass Ihre Workload keine gespeicherten Schlüssel benötigt.
Fordern Sie ein Google-ID-Token vom Metadatenserver an. Die Benutzergruppe in der Anforderung muss mit der Zielgruppe übereinstimmen, die Sie für die Verbundidentitätsanmeldeinformationen konfiguriert haben.
api://AzureADTokenExchangeDer folgende Node.js Codeausschnitt fordert das Token an und gibt es als Zeichenfolge zurück. Das Konzept ist in jeder Sprache identisch.async function getGoogleIdToken() { const endpoint = "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=api://AzureADTokenExchange"; const headers = { "Metadata-Flavor": "Google" }; const response = await fetch(endpoint, { method: "GET", headers }); return response.text(); }Exchange das Google ID-Token für ein Microsoft Entra Zugriffstoken mithilfe
ClientAssertionCredentialdes Azure Identity SDK.ClientAssertionCredentialruft einen Rückruf ab, der die Verbundbehauptung zurückgibt – in diesem Fall das Google-ID-Token. Geben Sie Ihre Microsoft Entra Mandanten-ID alstenantIdund die Anwendungs-ID (Client) der App-Registrierung alsclientId.import { ClientAssertionCredential } from "@azure/identity"; const credential = new ClientAssertionCredential(tenantId, clientId, getGoogleIdToken);Verwenden Sie die Anmeldeinformationen mit einem beliebigen Azure SDK Client. Um z. B. Azure Blob Storage aufzurufen:
const { BlobServiceClient } = require("@azure/storage-blob"); const blobClient = new BlobServiceClient(blobUrl, credential);
Wenn der Client ein Token benötigt, ruft er den Rückruf auf, um ein neues Google-ID-Token abzurufen, das Google-Token mit Microsoft Identity Platform für ein Zugriffstoken auszutauschen und das resultierende Zugriffstoken zwischenspeichert. Da ClientAssertionCredential die Verbund assertion über einen Rückruf bereitgestellt wird, speichert Ihre Workload niemals einen geheimen Schlüssel.
ClientAssertionCredentialist in den Azure Identity SDKs verfügbar, einschließlich .NET, Java, JavaScript, Python und Go. Die MSAL-Bibliotheken unterstützen auch Client assertionen, wenn Sie die Kontrolle über den Tokenaustausch auf niedrigerer Ebene benötigen.
Ihre Google Cloud-Workload kann jetzt auf Microsoft Entra geschützten Ressourcen ohne gespeicherte geheime Schlüssel zugreifen.
Bereinigen von Ressourcen
Wenn Sie die in diesem Lernprogramm erstellten Ressourcen nicht mehr benötigen, entfernen Sie sie, um laufende Gebühren zu vermeiden:
Löschen Sie die Verbundidentitätsanmeldeinformationen aus Ihrer App-Registrierung:
az ad app federated-credential delete \ --id <your-app-id> \ --federated-credential-id AccessFromGoogleWenn Sie für dieses Lernprogramm ein dediziertes Google Cloud-Dienstkonto erstellt haben, löschen Sie es in der Google Cloud-Konsole unter IAM & Admin>Service-Konten.
Entfernen Sie alle Rollenzuweisungen, die Sie hinzugefügt haben, um Ihrer App oder verwalteten Identität Zugriff auf Azure Ressourcen zu gewähren.
Verwandte Inhalte
- Workload-Identitätsverbund
- Konfigurieren einer Vertrauensstellung zwischen einer App und einem externen Identitätsanbieter
- Konfigurieren einer benutzerseitig zugewiesenen verwalteten Identität, um einem externen Identitätsanbieter zu vertrauen
- Wichtige Überlegungen und Einschränkungen zu Verbundidentitätsnachweisen
- Erstellen einer federatedIdentityCredential (Microsoft Graph)