Konfigurieren einer App, um einem externen Identitätsanbieter zu vertrauen
In diesem Artikel wird beschrieben, wie Sie Anmeldeinformationen für eine Verbundidentität für eine Anwendung in Microsoft Entra ID verwalten. Anmeldeinformationen für eine Verbundidentität erstellen eine Vertrauensstellung zwischen einer Anwendung und einem externen Identitätsanbieter (Identity Provider, IdP).
Anschließend können Sie eine externe Softwareworkload konfigurieren, um ein Token vom externen IdP gegen ein Zugriffstoken von Microsoft Identity Platform auszutauschen. Der externe Workload kann auf geschützte Microsoft Entra-Ressourcen zugreifen, ohne geheime Schlüssel verwalten zu müssen (in unterstützten Szenarien). Weitere Informationen zum Workflow für den Tokenaustausch finden Sie im Artikel zum Identitätsverbund für Workloads.
In diesem Artikel erfahren Sie, wie Sie Verbundidentitätsanmeldeinformationen für eine Anwendung in Microsoft Entra ID erstellen, auflisten und löschen.
Wichtige Überlegungen und Einschränkungen
Um Anmeldeinformationen für Verbundidentitäten zu erstellen, zu aktualisieren oder zu löschen, muss das Konto, das die Aktion ausführt, über die Rolle Anwendungsadministrator, Anwendungsentwickler, Cloudanwendungsadministratoroder Anwendungsbesitzerrolle verfügen. Die microsoft.directory/applications/credentials/update-Berechtigung ist erforderlich, um Anmeldeinformationen für Verbundidentitäten zu aktualisieren.
Maximal 20 Verbundidentitätsanmeldeinformationen können einer Anwendung oder einer vom Benutzer zugewiesenen verwalteten Identität hinzugefügt werden.
Beim Konfigurieren von Anmeldeinformationen für eine Verbundidentität müssen mehrere wichtige Informationen angegeben werden:
Ausgeber und Subjekt sind die wichtigsten Informationen, die zum Einrichten der Vertrauensstellung erforderlich sind. Die Kombination von
issuer
undsubject
muss für die App eindeutig sein. Wenn die externe Softwareworkload Microsoft Identity Platform zum Austausch des externen Tokens gegen ein Zugriffstoken auffordert, werden die Werte von Ausgeber und Subjekt der Anmeldeinformationen für die Verbundidentität anhand der Ansprücheissuer
undsubject
überprüft, die im externen Token bereitgestellt werden. Wenn diese Überprüfung erfolgreich ist, stellt Microsoft Identity Platform ein Zugriffstoken für die externe Softwareworkload aus.issuer ist die URL des externen Identitätsanbieters und muss mit dem Anspruch
issuer
des ausgetauschten externen Tokens übereinstimmen. Erforderlich. Wenn derissuer
-Anspruch führende oder nachfolgende Leerzeichen im Wert enthält, wird der Tokenaustausch blockiert. Dieses Feld hat eine Zeichenbeschränkung von 600 Zeichen.subject ist der Bezeichner der externen Softwareworkload und muss mit dem Anspruch
sub
subject
des ausgetauschten externen Tokens übereinstimmen. Subjekt hat kein festes Format, da jeder IdP sein eigenes verwendet – manchmal eine GUID, manchmal einen durch Doppelpunkt getrennten Bezeichner, manchmal beliebige Zeichenfolgen. Dieses Feld hat eine Zeichenbeschränkung von 600 Zeichen.Wichtig
Die Werte für die Einstellung Subjekt müssen exakt mit der Konfiguration in der GitHub-Workflowkonfiguration übereinstimmen. Andernfalls lehnt Microsoft Identity Platform den Austausch für ein Zugriffstoken ab, nachdem das eingehende externe Token überprüft wurde. Es wird kein Fehler angezeigt, der Austausch schlägt ohne Fehlermeldung fehl.
Wichtig
Wenn Sie versehentlich die falschen externen Workloadinformationen in der Einstellung Subjekt hinzufügen, werden die Anmeldeinformationen für die Verbundidentität ohne Fehler erfolgreich erstellt. Der Fehler wird erst offensichtlich, wenn der Austausch des Tokens fehlschlägt.
Audiences listet die Zielgruppen auf, die im externen Token angezeigt werden können. Erforderlich. Sie müssen einen einzelnen Zielgruppenwert hinzufügen, der maximal 600 Zeichen enthält. Der empfohlene Wert ist "api://AzureADTokenExchange". Es gibt an, was Microsoft Identity Platform im Anspruch
aud
im eingehenden Token akzeptieren muss.Name ist der eindeutige Bezeichner für die Anmeldeinformationen für eine Verbundidentität. Erforderlich. Dieses Feld hat eine Zeichenbeschränkung von 3 bis 120 Zeichen und muss url-freundlich sein. Alphanumerische Zeichen, Bindestriche und Unterstriche werden unterstützt, aber das erste Zeichen muss alphanumerisch sein. Es ist unveränderlich, sobald es erstellt wurde.
Beschreibung ist die vom Benutzer bereitgestellte Beschreibung der Anmeldeinformationen für eine Verbundidentität. Wahlfrei. Die Beschreibung wird von Microsoft Entra ID weder validiert noch überprüft. Dieses Feld hat einen Grenzwert von 600 Zeichen.
Platzhalterzeichen werden in keinem Eigenschaftswert für Anmeldeinformationen für Verbundidentitäten unterstützt.
Informationen zu unterstützten Regionen, zum Zeitraum der Weitergabe von aktualisierten Anmeldeinformationen für Verbundidentitäten, zu unterstützten Ausstellern und vielem mehr finden Sie unter Wichtige Überlegungen und Einschränkungen zu Anmeldeinformationen für Verbundidentitäten.
Voraussetzungen
- Erstellen einer App-Registrierung oder verwalteten Identitäts- in Microsoft Entra ID. Gewähren Sie Ihrer App Zugriff auf die Azure-Ressourcen, die von Ihrer externen Softwareworkload verwendet werden.
- Suchen Sie die Objekt-ID der App (nicht die Anwendungs-ID (Client-ID), die Sie in den folgenden Schritten benötigen. Sie finden die Objekt-ID der App im Microsoft Entra Admin Center. Wechseln Sie zur Liste der App-Registrierungen, und wählen Sie Ihre App-Registrierung aus. In Übersichtfinden Sie die Objekt-ID.
- Rufen Sie die Informationen zu Antragsteller und Aussteller für Ihren externen IdP und die Softwareworkload ab – Sie benötigen diese in den folgenden Schritten.
Konfigurieren von Anmeldeinformationen für eine Verbundidentität für eine App
GitHub-Aktionen
Führen Sie die folgenden Schritte aus, um eine Verbundidentität für GitHub-Aktionen hinzuzufügen:
Suchen Sie Ihre App-Registrierung in der Oberfläche für App-Registrierungen im Microsoft Entra Admin Center. Wählen Sie im linken Navigationsbereich die Option Zertifikate & Geheimnisse aus, wählen Sie die Registerkarte Verbundanmeldeinformationen aus, und wählen Sie dann Anmeldeinformationen hinzufügen aus.
Wählen Sie im Dropdownfeld Szenario für Verbundanmeldeinformationen die Option GitHub-Aktionen, die Azure-Ressourcen bereitstellen aus.
Geben Sie die Organisation und das Repository für den GitHub Actions-Workflow an.
Wählen Sie für Entitätstyp die Option Umgebung, Branch, Pull Anforderung oder Tag aus, und geben Sie den Wert an. Die Werte müssen genau mit der Konfiguration im GitHub-Workflowübereinstimmen. Musterabgleich wird für Branches und Tags nicht unterstützt. Geben Sie eine Umgebung an, wenn Ihr On-Push-Workflow für viele Branches oder Tags ausgeführt wird. Lesen Sie die Beispiele für weitere Informationen.
Fügen Sie einen Namen für die Verbundanmeldeinformationen hinzu.
Die Felder Aussteller, Zielgruppen und Antragstellerkennung werden basierend auf den eingegebenen Werten automatisch ausgefüllt.
Wählen Sie Hinzufügen aus, um die Verbundanmeldeinformationen zu konfigurieren.
Verwenden Sie die folgenden Werte aus ihrer Microsoft Entra-Anwendungsregistrierung für Ihren GitHub-Workflow:
AZURE_CLIENT_ID
: die Anwendungs- bzw. Client-IDAZURE_TENANT_ID
: die Verzeichnis- bzw. Mandanten-IDDer folgende Screenshot zeigt, wie Sie die Anwendungs-ID und die Mandanten-ID kopieren.
AZURE_SUBSCRIPTION_ID
: Ihre Abonnement-ID. Um die Abonnement-ID abzurufen, öffnen Sie Abonnements im Azure-Portal und suchen Sie Ihr Abonnement. Kopieren Sie dann die Abonnement-ID.
Beispiele für Entitätstypen
Branchbeispiel
Für einen Workflow, der durch ein Push Request- oder Pull Request-Ereignis im Mainbranch ausgelöst wird:
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
Geben Sie Branch als Entitätstyp und „main“ als GitHub-Branchname an.
Umgebungsbeispiel
Für Aufträge, die an eine Umgebung mit dem Namen "Produktion" gebunden sind:
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- name: deploy
# ...deployment-specific steps
Geben Sie Umgebung als Entitätstyp und „production“ als GitHub-Umgebungsnamen an.
Tagbeispiel
Beispiel eines Workflows, der durch einen Push an das Tag mit dem Namen „v2“ ausgelöst wird:
on:
push:
# Sequence of patterns matched against refs/heads
branches:
- main
- 'mona/octocat'
- 'releases/**'
# Sequence of patterns matched against refs/tags
tags:
- v2
- v1.*
Geben Sie Tag als Entitätstyp und „v2“ als GitHub-Tagnamen an.
Beispiel für Pull-Request
Geben Sie für einen Workflow, der durch ein Pull Anforderungs-Ereignis ausgelöst wird, Pull Request als Entitätstyp an
Kubernetes
Suchen Sie Ihre App-Registrierung in der Oberfläche für App-Registrierungen im Microsoft Entra Admin Center. Wählen Sie im linken Navigationsbereich die Option Zertifikate & Geheimnisse aus, wählen Sie die Registerkarte Verbundanmeldeinformationen aus, und wählen Sie dann Anmeldeinformationen hinzufügen aus.
Wählen Sie im Dropdownmenü das Szenario Kubernetes greift auf Azure-Ressourcen zu aus.
Füllen Sie die Felder Clusteraussteller-URL, Namespace, Dienstkontoname und Name aus:
- Clusteraussteller-URL ist die OIDC-Aussteller-URL für den verwalteten Cluster oder die OIDC-Aussteller-URL für einen selbstverwalteten Cluster.
- Dienstkontoname ist der Name des Kubernetes-Dienstkontos, das eine Identität für Prozesse bereitstellt, die in einem Pod ausgeführt werden.
- Namespace ist der Namespace des Dienstkontos.
- Name ist der Name der Verbundanmeldedaten, der später nicht geändert werden kann.
Andere Identitätsanbieter
Suchen Sie Ihre App-Registrierung in der Oberfläche für App-Registrierungen im Microsoft Entra Admin Center. Wählen Sie im linken Navigationsbereich die Option Zertifikate & Geheimnisse aus, wählen Sie die Registerkarte Verbundanmeldeinformationen aus, und wählen Sie dann Anmeldeinformationen hinzufügen aus.
Wählen Sie im Dropdownmenü das Szenario Anderer Aussteller aus.
Geben Sie die folgenden Felder an (beispielsweise mithilfe einer in Google Cloud ausgeführten Softwareworkload):
- Name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.
- Antragsteller-ID: Muss mit dem Anspruch
sub
im Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. In diesem Beispiel mit Google Cloud ist subject die eindeutige ID des Dienstkontos, das Sie verwenden möchten. - Zertifikataussteller: Muss mit dem Anspruch
iss
im Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. Eine URL, die der OIDC Discovery-Spezifikation entspricht. Microsoft Entra ID verwendet diese Aussteller-URL, um die Schlüssel abzurufen, die zum Überprüfen des Tokens erforderlich sind. Für Google Cloud ist der Ausstellerhttps://accounts.google.com
.
Auflisten der Anmeldeinformationen für Verbundidentitäten für eine App
Suchen Sie Ihre App-Registrierung in der Oberfläche für App-Registrierungen im Microsoft Entra Admin Center. Wählen Sie Zertifikate & geheime Schlüssel im linken Navigationsbereich aus, und wählen Sie die Registerkarte Verbundanmeldeinformationen aus. Die Verbundanmeldeinformationen, die für Ihre App konfiguriert sind, werden aufgelistet.
Löschen von Anmeldeinformationen für eine Verbundidentität aus einer App
Suchen Sie Ihre App-Registrierung in der Oberfläche für App-Registrierungen im Microsoft Entra Admin Center. Wählen Sie Zertifikate & geheime Schlüssel im linken Navigationsbereich aus, und wählen Sie die Registerkarte Verbundanmeldeinformationen aus. Die Verbundanmeldeinformationen, die für Ihre App konfiguriert sind, werden aufgelistet.
Wählen Sie zum Löschen der Anmeldeinformationen für eine Verbundidentität das Symbol Löschen für diese Anmeldeinformationen aus.
Einrichten einer flexiblen Verbundidentitäts-Anmeldeinformationen (Vorschau)
- Navigieren Sie zu Microsoft Entra-ID, und wählen Sie die Anwendung aus, in der Sie die Verbundidentitätsanmeldeinformationen konfigurieren möchten.
- Wählen Sie im linken Navigationsbereich Zertifikate & geheimen Schlüsselaus.
- Wählen Sie unter der Registerkarte Verbundanmeldeinformationen die Option Anmeldeinformationen hinzufügen aus.
- Wählen Sie im angezeigten Fenster Hinzufügen von Anmeldeinformationen aus dem Dropdownmenü neben Szenario für Verbundanmeldeinformationen "Sonstiger Aussteller"aus.
- Geben Sie in Wert den Anspruchsabgleichsausdruck ein, den Sie verwenden möchten.
Voraussetzungen
- Wenn Sie noch kein Azure-Konto haben, sollten Sie sich für ein kostenloses Konto registrieren, bevor Sie fortfahren.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS verwenden, sollten Sie Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mit dem Befehl az login bei der Azure CLI an. Um den Authentifizierungsprozess abzuschließen, führen Sie die schritte aus, die in Ihrem Terminal angezeigt werden. Weitere Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Erstellen Sie eine App-Registrierung in Microsoft Entra ID. Gewähren Sie Ihrer App Zugriff auf die Azure-Ressourcen, die von Ihrer externen Softwareworkload verwendet werden.
- Suchen Sie die Objekt-ID, die App-ID (Client-ID) oder die Identifikator-URI der App, die Sie in den folgenden Schritten benötigen. Diese Werte finden Sie im Microsoft Entra Admin Center. Wechseln Sie zur Liste der registrierten Anwendungen, und wählen Sie Ihre App-Registrierung aus. Rufen Sie unter Übersicht->Grundlagen den Wert für die Objekt-ID, die Anwendungs-ID (Client-ID) oder den Anwendungs-ID-URI ab. Sie benötigen diesen Wert in den folgenden Schritten.
- Rufen Sie die Informationen zu Antragsteller und Aussteller für Ihren externen IdP und die Softwareworkload ab – Sie benötigen diese in den folgenden Schritten.
Konfigurieren von Anmeldeinformationen für eine Verbundidentität für eine App
Führen Sie den Befehl az ad app federated-credential create aus, um neue Anmeldeinformationen für eine Verbundidentität für Ihre App zu erstellen.
Der parameter id
gibt den Bezeichner-URI, die Anwendungs-ID oder die Objekt-ID der Anwendung an. Der Parameter parameters
gibt die Parameter (im JSON-Format) zum Erstellen der Anmeldeinformationen für eine Verbundidentität an.
Beispiel für GitHub-Aktionen
Der Name gibt den Namen Ihrer Anmeldeinformationen für eine Verbundidentität an.
Der Aussteller identifiziert den Pfad zum GitHub OIDC-Anbieter: https://token.actions.githubusercontent.com/
. Dieser Aussteller wird von Ihrer Azure-Anwendung als vertrauenswürdig eingestuft.
Der Gegenstand identifiziert die GitHub-Organisation, das Repository und die Umgebung für Ihren GitHub Actions-Workflow. Wenn der GitHub Actions-Workflow Microsoft Identity Platform zum Austausch eines GitHub-Tokens gegen ein Zugriffstoken auffordert, werden die Werte in den Anmeldeinformationen der Verbundidentität anhand des bereitgestellten GitHub-Tokens überprüft. Bevor Azure ein Zugriffstoken gewährt, muss die Anforderung den hier definierten Bedingungen entsprechen.
- Für Aufträge, die an eine Umgebung gebunden sind:
repo:< Organization/Repository >:environment:< Name >
- Bei Aufträgen, die nicht an eine Umgebung gebunden sind, fügen Sie den Referenzpfad für den Branch/Tag auf der Grundlage des für die Auslösung des Workflows verwendeten Referenzpfads ein:
repo:< Organization/Repository >:ref:< ref path>
. Beispiel:repo:n-username/ node_express:ref:refs/heads/my-branch
oderrepo:n-username/ node_express:ref:refs/tags/my-tag
. - Für Workflows, die durch ein Pull-Request-Ereignis ausgelöst werden:
repo:< Organization/Repository >:pull-request
.
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Testing",
"issuer": "https://token.actions.githubusercontent.com",
"subject": "repo:octo-org/octo-repo:environment:Production",
"description": "Testing",
"audiences": [
"api://AzureADTokenExchange"
]
}
Kubernetes-Beispiel
Der Aussteller ist die Dienstkontoaussteller-URL (die OIDC-Aussteller-URL für den verwalteten Cluster oder die OIDC-Aussteller-URL für einen selbstverwalteten Cluster).
Das Subjekt ist der Antragstellername in den Token, die für das Dienstkonto ausgestellt werden. Kubernetes verwendet das folgende Format für Betreffsnamen: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
.
Der Name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.
Die Zielgruppen listet die Zielgruppen auf, die im externen Token angezeigt werden können. Dieses Feld ist obligatorisch. Empfohlener Wert: api://AzureADTokenExchange
.
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Kubernetes-federated-credential",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa",
"description": "Kubernetes service account federated credential",
"audiences": [
"api://AzureADTokenExchange"
]
}
Beispiel für andere Identitätsanbieter
Sie können einen Verbundidentitätsnachweis für eine App konfigurieren und ein Vertrauensverhältnis mit anderen externen Identitätsanbietern herstellen. Im folgenden Beispiel wird eine Software-Arbeitslast verwendet, die in Google Cloud ausgeführt wird:
name
ist der Name der Verbundanmeldeinformation, die später nicht geändert werden kann.id
: die Objekt-ID, Anwendungs-ID (Client-ID) oder Bezeichner-URI der App.subject
: muss demsub
Anspruch im vom externen Identitätsanbieter ausgestellten Token entsprechen. In diesem Beispiel mit Google Cloud ist subject die eindeutige ID des Dienstkontos, das Sie verwenden möchten.issuer
: muss demiss
Anspruch im vom externen Identitätsanbieter ausgestellten Token entsprechen. Eine URL, die der OIDC Discovery-Spezifikation entspricht. Microsoft Entra ID verwendet diese Aussteller-URL, um die Schlüssel abzurufen, die zum Überprüfen des Tokens erforderlich sind. Für Google Cloud ist der Ausstellerhttps://accounts.google.com
.audiences
: Listet die Zielgruppen auf, die im externen Token enthalten sein können. Dieses Feld ist obligatorisch. Der empfohlene Wert ist "api://AzureADTokenExchange".
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "GcpFederation",
"issuer": "https://accounts.google.com",
"subject": "112633961854638529490",
"description": "Test GCP federation",
"audiences": [
"api://AzureADTokenExchange"
]
}
Verbund-Identitätsanmeldedaten auf einer App auflisten
Führen Sie den Befehl az ad app federated-credential list aus, um die Anmeldeinformationen für eine Verbundidentität in Ihrer App aufzulisten.
Der parameter id
gibt den Bezeichner-URI, die Anwendungs-ID oder die Objekt-ID der Anwendung an.
az ad app federated-credential list --id 00001111-aaaa-2222-bbbb-3333cccc4444
Abrufen von Anmeldeinformationen für eine Verbundidentität in einer App
Führen Sie den Befehl az ad app federated-credential show aus, um Anmeldeinformationen für eine Verbundidentität in Ihrer App abzurufen.
Der parameter id
gibt den Bezeichner-URI, die Anwendungs-ID oder die Objekt-ID der Anwendung an.
Der Wert federated-credential-id
gibt die ID oder den Namen der Anmeldeinformationen für eine Verbundidentität an.
az ad app federated-credential show --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Löschen von Anmeldeinformationen für eine Verbundidentität aus einer App
Führen Sie den Befehl az ad app federated-credential delete aus, um die Anmeldeinformationen für eine Verbundidentität aus Ihrer App zu entfernen.
Der parameter id
gibt den Bezeichner-URI, die Anwendungs-ID oder die Objekt-ID der Anwendung an.
Der Wert federated-credential-id
gibt die ID oder den Namen der Anmeldeinformationen für eine Verbundidentität an.
az ad app federated-credential delete --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Voraussetzungen
- Zum Ausführen der Beispielskripts haben Sie zwei Optionen:
- Verwenden Sie Azure Cloud Shell, was Sie über die Schaltfläche Try it (Testen) in der rechten oberen Ecke der Codeblöcke öffnen können.
- Führen Sie Skripts lokal mit Azure PowerShell aus, wie im nächsten Abschnitt beschrieben.
- Erstellen Sie eine App-Registrierung in Microsoft Entra ID. Gewähren Sie Ihrer App Zugriff auf die Azure-Ressourcen, die von Ihrer externen Software-Arbeitslast betroffen sind.
- Suchen Sie die Objekt-ID der App (nicht die Anwendungs-ID (Client-ID), die Sie in den folgenden Schritten benötigen. Sie finden die Objekt-ID der App im Microsoft Entra Admin Center. Wechseln Sie zur Liste der registrierten Anwendungen, und wählen Sie Ihre App-Registrierung aus. Suchen Sie in Übersicht->Essentials die Objekt-ID.
- Rufen Sie die Informationen zu Antragsteller und Aussteller für Ihren externen IdP und die Softwareworkload ab – Sie benötigen diese in den folgenden Schritten.
Lokales Konfigurieren von Azure PowerShell
So verwenden Sie Azure PowerShell lokal für diesen Artikel anstelle von Cloud Shell:
Installieren Sie die neueste Version von Azure PowerShell, wenn Sie dies noch nicht getan haben.
Melden Sie sich bei Azure an.
Connect-AzAccount
Installieren Sie die neueste Version von PowerShellGet.
Install-Module -Name PowerShellGet -AllowPrerelease
Sie müssen die aktuelle PowerShell-Sitzung unter Umständen beenden (
Exit
), nachdem Sie diesen Befehl für den nächsten Schritt ausgeführt haben.Installieren Sie die Vorabversion des Moduls
Az.Resources
, um die Operationen für föderierte Identitätsnachweise in diesem Artikel auszuführen.Install-Module -Name Az.Resources -AllowPrerelease
Konfigurieren von Anmeldeinformationen für eine Verbundidentität für eine App
Führen Sie das Cmdlet New-AzADAppFederatedCredential aus, um neue Anmeldeinformationen für eine Verbundidentität in einer Anwendung zu erstellen.
Beispiel für GitHub-Aktionen
- ApplicationObjectId: Die Objekt-ID der App (nicht die Anwendungs-ID [Client-ID]), die Sie zuvor in Microsoft Entra ID registriert haben.
- Issuer gibt GitHub als externen Tokenherausgeber an.
- Subject identifiziert die GitHub-Organisation, das GitHub-Repository und die GitHub-Umgebung für Ihren GitHub Actions-Workflow. Wenn der GitHub Actions-Workflow Microsoft Identity Platform zum Austausch eines GitHub-Tokens gegen ein Zugriffstoken auffordert, werden die Werte in den Anmeldeinformationen der Verbundidentität anhand des bereitgestellten GitHub-Tokens überprüft.
- Für Aufträge, die an eine Umgebung gebunden sind:
repo:< Organization/Repository >:environment:< Name >
- Bei Aufträgen, die nicht an eine Umgebung gebunden sind, fügen Sie den Referenzpfad für den Branch/Tag auf der Grundlage des für die Auslösung des Workflows verwendeten Referenzpfads ein:
repo:< Organization/Repository >:ref:< ref path>
. Beispiel:repo:n-username/ node_express:ref:refs/heads/my-branch
oderrepo:n-username/ node_express:ref:refs/tags/my-tag
. - Für Workflows, die durch ein Pull-Request-Ereignis ausgelöst werden:
repo:< Organization/Repository >:pull-request
.
- Für Aufträge, die an eine Umgebung gebunden sind:
- Name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.
- Audience listet die Zielgruppen auf, die im externen Token enthalten sein können. Dieses Feld ist obligatorisch. Empfohlener Wert:
api://AzureADTokenExchange
.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://token.actions.githubusercontent.com/' -Name 'GitHub-Actions-Test' -Subject 'repo:octo-org/octo-repo:environment:Production'
Kubernetes-Beispiel
- ApplicationObjectId: die Objekt-ID der App, die Sie zuvor in Microsoft Entra ID registriert haben (nicht die Anwendungs-Client-ID).
- Issuer ist die Dienstkontoaussteller-URL (die OIDC-Aussteller-URL für den verwalteten Cluster oder die OIDC-Aussteller-URL für einen selbstverwalteten Cluster).
- Subject ist der Antragstellername in den Token, die für das Dienstkonto ausgestellt werden. Kubernetes verwendet das folgende Format für Betreffnamen:
system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
. - Name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.
- Audience listet die Zielgruppen auf, die im
aud
-Anspruch des externen Tokens angezeigt werden können.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/' -Name 'Kubernetes-federated-credential' -Subject 'system:serviceaccount:erp8asle:pod-identity-sa'
Beispiel für andere Identitätsanbieter
Geben Sie die folgenden Parameter an (z. B. mit einer Softwareanwendung, die auf Google Cloud läuft):
- ObjectID: die Objekt-ID der App (nicht die Anwendungs-ID (Client-ID)), die Sie zuvor in Microsoft Entra ID registriert haben.
- Name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.
- Subject: Muss mit dem
sub
-Anspruch in dem Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. In diesem Beispiel mit Google Cloud ist subject die eindeutige ID des Dienstkontos, das Sie verwenden möchten. - Zertifikataussteller: Muss mit dem Anspruch
iss
im Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. Eine URL, die der OIDC Discovery-Spezifikation entspricht. Microsoft Entra ID verwendet diese Aussteller-URL, um die Schlüssel abzurufen, die zum Überprüfen des Tokens erforderlich sind. Für Google Cloud ist der Ausstellerhttps://accounts.google.com
. - Audiences: Muss mit dem
aud
-Anspruch im externen Token übereinstimmen. Aus Sicherheitsgründen sollten Sie einen Wert auswählen, der eindeutig für Token bestimmt ist, die für Microsoft Entra-ID gedacht sind. Der empfohlene Wert ist "api://AzureADTokenExchange".
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://accounts.google.com' -Name 'GcpFederation' -Subject '112633961854638529490'
Auflisten der Anmeldeinformationen für Verbundidentitäten für eine App
Führen Sie das Cmdlet Get-AzADAppFederatedCredential aus, um die Anmeldeinformationen für die Verbundidentität für eine Anwendung aufzulisten.
Get-AzADApplication -ObjectId $app | Get-AzADAppFederatedCredential
** Erlangen Sie eine föderierte Identitätsberechtigung in einer App
Führen Sie das Cmdlet Get-AzADAppFederatedCredential aus, um die Anmeldeinformationen für die Verbundidentität für eine Anwendung anhand der ID abzurufen.
Get-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Löschen Sie einen Verbundidentitätsnachweis aus einer App
Führen Sie das Cmdlet Remove-AzADAppFederatedCredential aus, um die Anmeldeinformationen für die Verbundidentität aus einer Anwendung zu entfernen.
Remove-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Voraussetzungen
Erstelle eine App-Registrierung in Microsoft Entra ID. Gewähren Sie Ihrer App Zugriff auf die Azure-Ressourcen, die von Ihrer externen Softwareworkload verwendet werden.
Suchen Sie die Objekt-ID der App (nicht die Anwendungs-ID (Client-ID), die Sie in den folgenden Schritten benötigen. Sie finden die Objekt-ID der App im Microsoft Entra Admin Center. Wechseln Sie zur Liste der registrierten Anwendungen, und wählen Sie Ihre App-Registrierung aus. Suchen Sie in Übersicht->Essentials die Objekt-ID.
Rufen Sie die Informationen zu Antragsteller und Aussteller für Ihren externen IdP und die Softwareworkload ab – Sie benötigen diese in den folgenden Schritten.
Der Microsoft Graph-Endpunkt (https://graph.microsoft.com
) macht REST-APIs verfügbar, mit denen federatedIdentityCredentials für Anwendungen erstellt, aktualisiert und gelöscht werden können. Starten Sie Azure Cloud Shell und melden Sie sich bei Ihrem Mandanten an, um Microsoft Graph-Befehle über die Azure CLI auszuführen.
Konfigurieren von Anmeldeinformationen für eine Verbundidentität für eine App
GitHub-Aktionen
Führen Sie die folgende Methode aus, um neue Anmeldeinformationen für eine Verbundidentität für Ihre App zu erstellen (angegeben durch die Objekt-ID der App). issuer
identifiziert GitHub als externen Tokenherausgeber. subject
identifiziert die GitHub-Organisation, das Repository und die Umgebung für Ihren GitHub-Aktionen-Workflow. Wenn der GitHub Actions-Workflow Microsoft Identity Platform zum Austausch eines GitHub-Tokens gegen ein Zugriffstoken auffordert, werden die Werte in den Anmeldeinformationen der Verbundidentität anhand des bereitgestellten GitHub-Tokens überprüft.
az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Testing","issuer":"https://token.actions.githubusercontent.com","subject":"repo:octo-org/octo-repo:environment:Production","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
Und Sie erhalten die Antwort:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
Im Codeausschnitt sind die Parameter wie folgt:
name
: Der Name Ihrer Azure-Anwendung.issuer
: Der Pfad zum GitHub OIDC-Anbieter:https://token.actions.githubusercontent.com
. Dieser Aussteller wird von Ihrer Azure-Anwendung als vertrauenswürdig eingestuft.subject
: Bevor Azure ein Zugriffstoken gewährt, muss die Anforderung den hier definierten Bedingungen entsprechen.- Für Aufträge, die an eine Umgebung gebunden sind:
repo:< Organization/Repository >:environment:< Name >
- Bei Aufträgen, die nicht an eine Umgebung gebunden sind, fügen Sie den Referenzpfad für den Branch/Tag auf der Grundlage des für die Auslösung des Workflows verwendeten Referenzpfads ein:
repo:< Organization/Repository >:ref:< ref path>
. Beispiel:repo:n-username/ node_express:ref:refs/heads/my-branch
oderrepo:n-username/ node_express:ref:refs/tags/my-tag
. - Für Workflows, die durch ein Pull-Request-Ereignis ausgelöst werden:
repo:< Organization/Repository >:pull-request
.
- Für Aufträge, die an eine Umgebung gebunden sind:
audiences
listet die Zielgruppen auf, die im externen Token angezeigt werden können. Dieses Feld ist obligatorisch. Der empfohlene Wert ist "api://AzureADTokenExchange".
Kubernetes-Beispiel
Führen Sie die folgende Methode aus, um Anmeldeinformationen für eine Verbundidentität in einer App zu konfigurieren und eine Vertrauensstellung mit einem Kubernetes-Dienstkonto zu erstellen. Geben Sie die folgenden Parameter an:
issuer
ist die URL des OIDC-Aussteller Ihres Dienstkontos (die OIDC-Issuer-URL für den verwalteten Cluster oder die OIDC-Issuer-URL für einen selbstverwalteten Cluster).subject
ist der Subjektname in den Token, die für das Dienstkonto ausgestellt wurden. Kubernetes verwendet das folgende Format für Betreffnamen:system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
.name
ist der Name der Verbundanmeldeinformation, die später nicht geändert werden kann.audiences
listet die Zielgruppen auf, die im externen Token angezeigt werden können. Dieses Feld ist obligatorisch. Der empfohlene Wert ist "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Kubernetes-federated-credential","issuer":"https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/","subject":"system:serviceaccount:erp8asle:pod-identity-sa","description":"Kubernetes service account federated credential","audiences":["api://AzureADTokenExchange"]}'
Und Sie erhalten die Antwort:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Kubernetes service account federated credential",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"name": "Kubernetes-federated-credential",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa"
}
Andere Identitätsanbieter, Beispiel
Führen Sie die folgende Methode aus, um Anmeldeinformationen für eine Verbundidentität in einer App zu konfigurieren und eine Vertrauensstellung mit einem externen Identitätsanbieter zu erstellen. Geben Sie die folgenden Parameter an (beispielsweise mithilfe einer in Google Cloud ausgeführten Softwareworkload):
- name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.
- ObjectID: die Objekt-ID der App (nicht die Anwendungs-ID (Client-ID)), die Sie zuvor in Microsoft Entra ID registriert haben.
- subject: Muss mit dem Anspruch
sub
im Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. In diesem Beispiel mit Google Cloud ist subject die eindeutige ID des Dienstkontos, das Sie verwenden möchten. - Ausgeber: Muss mit dem Anspruch
iss
im Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. Eine URL, die der OIDC Discovery-Spezifikation entspricht. Microsoft Entra ID verwendet diese Aussteller-URL, um die Schlüssel abzurufen, die zum Überprüfen des Tokens erforderlich sind. Für Google Cloud lautet der Aussteller "https://accounts.google.com". - Audiences listet die Zielgruppen auf, die im externen Token angezeigt werden können. Dieses Feld ist obligatorisch. Der empfohlene Wert ist "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/<ObjectID>/federatedIdentityCredentials' --body '{"name":"GcpFederation","issuer":"https://accounts.google.com","subject":"112633961854638529490","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
Und Sie erhalten die Antwort:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://accounts.google.com"",
"name": "GcpFederation",
"subject": "112633961854638529490"
}
Auflisten der Anmeldeinformationen für Verbundidentitäten für eine App
Führen Sie die folgende Methode aus, um die Verbundidentitätsanmeldeinformationen für eine App auf
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'
Und Sie erhalten eine Antwort ähnlich wie:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": [
{
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
]
}
Abrufen von Anmeldeinformationen für eine Verbundidentität in einer App
Führen Sie die folgende Methode aus, um Anmeldeinformationen für eine Verbundidentität für eine App abzurufen (angegeben durch die Objekt-ID der App):
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444//federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Und Sie erhalten eine Antwort ähnlich wie:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": {
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials('00001111-aaaa-2222-bbbb-3333cccc4444')/00001111-aaaa-2222-bbbb-3333cccc4444",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
}
Löschen von Anmeldeinformationen für eine Verbundidentität aus einer App
Führen Sie die folgende Methode aus, um Anmeldeinformationen für eine Verbundidentität aus einer App zu löschen (angegeben durch die Objekt-ID der App):
az rest -m DELETE -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Weitere Informationen
- Informationen zur Verwendung des Identitätsverbunds der Arbeitsauslastung für Kubernetes finden Sie im Open-Source-Projekt Microsoft Entra Workload ID für Kubernetes.
- Informationen darüber, wie Sie die Workload-Identitätsföderation für GitHub Actions verwenden, finden Sie unter Konfigurieren eines GitHub Actions-Workflows, um ein Zugriffstoken zu erhalten.
- Lesen Sie die GitHub Actions-Dokumentation, um mehr über das Konfigurieren Ihres GitHub Actions-Workflows zu erfahren, um ein Zugriffstoken von Microsoft Identity Provider abzurufen und auf Azure-Ressourcen zuzugreifen.
- Informieren Sie sich, wie Microsoft Entra ID die Gewährung von OAuth 2.0-Clientanmeldeinformationen und eine Clientassertion, die von einem anderen IdP ausgegeben wurde, verwendet, um ein Token abzurufen.
- Informationen zum erforderlichen Format von JWTs, die von externen Identitätsanbietern erstellt werden, finden Sie unter Assertionsformat.