Konfigurieren einer Vertrauensstellung zwischen einer App und einem externen Identitätsanbieter

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. Die externe Workload kann auf durch Microsoft Entra geschützte Ressourcen zugreifen, ohne Geheimnisse verwalten zu müssen (in unterstützten Szenarios). 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 Anmeldeinformationen für eine Verbundidentität für eine Anwendung in Microsoft Entra ID erstellen, auflisten und löschen.

Wichtige Überlegungen und Einschränkungen

Zum Erstellen, Aktualisieren oder Löschen von Anmeldeinformationen für Verbundidentitäten muss das Konto, das die Aktion ausführt, über die Rolle Anwendungsadministrator, Anwendungsentwickler, Cloudanwendungsadministrator oder „Anwendungsbesitzer“ verfügen. Die microsoft.directory/applications/credentials/update-Berechtigung ist erforderlich, um Anmeldeinformationen für Verbundidentitäten zu aktualisieren.

Einer Anwendung oder einer benutzerseitig zugewiesenen verwalteten Identität können bis zu 20 Anmeldeinformationen für eine Verbundidentität hinzugefügt werden.

Beim Konfigurieren von Anmeldeinformationen für eine Verbundidentität müssen mehrere wichtige Informationen angegeben werden:

  • issuer und subject sind die wichtigsten Informationen, die zum Einrichten der Vertrauensstellung erforderlich sind. Die Kombination von issuer und subject 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 issuer und subject der Anmeldeinformationen für die Verbundidentität anhand der Ansprüche issuer und subject ü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 der issuer-Anspruch führende oder nachfolgende Leerzeichen im Wert enthält, wird der Tokenaustausch blockiert. Für dieses Feld gilt eine Zeichenbeschränkung von 600 Zeichen.

  • subject ist der Bezeichner der externen Softwareworkload und muss mit dem Anspruch subsubject des ausgetauschten externen Tokens übereinstimmen. subject hat kein festes Format, da jeder IdP sein eigenes verwendet – manchmal eine GUID, manchmal einen durch Doppelpunkt getrennten Bezeichner, manchmal beliebige Zeichenfolgen. Für dieses Feld gilt eine Zeichenbeschränkung von 600 Zeichen.

    Wichtig

    Die Werte für die Einstellung subject 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 subject hinzufügen, werden die Anmeldeinformationen für die Verbundidentität ohne Fehler erfolgreich erstellt. Der Fehler wird erst angezeigt, wenn der Tokenaustausch 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 lang sein darf. Der empfohlene Wert lautet „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. Das Feld kann 3–120 Zeichen enthalten und muss URLs akzeptieren können. Alphanumerische Zeichen, Bindestriche und Unterstriche werden unterstützt, aber das erste Zeichen muss alphanumerisch sein.  Nach der Erstellung ist das Feld unveränderlich.

  • description ist die vom Benutzer bereitgestellte Beschreibung der Anmeldeinformationen für eine Verbundidentität. Optional. Die Beschreibung wird von Microsoft Entra ID weder überprüft noch validiert. Dieses Feld darf maximal 600 Zeichen enthalten.

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 Sie eine App-Registrierung in Microsoft Entra ID erstellt. Gewähren Sie Ihrer App Zugriff auf die Azure-Ressourcen, die von Ihrer externen Softwareworkload verwendet werden.

Ermitteln Sie die Objekt-ID der App (nicht die Anwendungs-ID (Client)), die Sie in den folgenden Schritten benötigen. Sie finden die Objekt-ID der App im Microsoft Entra Admin Center. Navigieren Sie zur Liste der App-Registrierungen, 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.

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:

  1. 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 und Geheimnisse aus, wählen Sie die Registerkarte Verbundanmeldeinformationen aus, und wählen Sie dann Anmeldeinformationen hinzufügen aus.

  2. Wählen Sie im Dropdownfeld Szenario für Verbundanmeldeinformationen die Option GitHub-Aktionen, die Azure-Ressourcen bereitstellen aus.

  3. Geben Sie die Organisation und das Repository für den GitHub Actions-Workflow an.

  4. Wählen Sie für Entitätstyp die Option Umgebung, Branch, Pull Request 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. Weitere Informationen finden Sie in den Beispielen.

  5. Fügen Sie einen Namen für die Verbundanmeldeinformationen hinzu.

  6. Die Felder Aussteller, Zielgruppen und Antragstellerkennung werden basierend auf den eingegebenen Werten automatisch ausgefüllt.

  7. Wählen Sie Hinzufügen aus, um die Verbundanmeldeinformationen zu konfigurieren.

    Screenshot of the Add a credential window, showing sample values.

Verwenden Sie die folgenden Werte aus Ihrer Microsoft Entra-Anwendungsregistrierung für Ihren GitHub-Workflow:

  • AZURE_CLIENT_ID: die Anwendungs- bzw. Client-ID

  • AZURE_TENANT_ID: die Verzeichnis- bzw. Mandanten-ID

    Der folgende Screenshot zeigt, wie Sie die Anwendungs- und Mandanten-ID kopieren.

    Screenshot that demonstrates how to copy the application ID and tenant ID from Microsoft Entra admin center.

  • 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 namens „production“ 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.

Pull Request-Beispiel

Geben Sie für einen Workflow, der durch ein Pull Request-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 und 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 Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.

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 und 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 entsprechend der OIDC-Ermittlungsspezifikation. Microsoft Entra ID verwendet diese Aussteller-URL, um die erforderlichen Schlüssel zum Überprüfen des Tokens abzurufen. Für Google Cloud lautet der Aussteller "https://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 im linken Navigationsbereich die Option Zertifikate und Geheimnisse aus, und wählen Sie dann die Registerkarte Verbundanmeldeinformationen aus. Dort werden die für Ihre App konfigurieren Verbundanmeldeinformationen angezeigt.

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 im linken Navigationsbereich die Option Zertifikate und Geheimnisse aus, und wählen Sie dann die Registerkarte Verbundanmeldeinformationen aus. Dort werden die für Ihre App konfigurieren Verbundanmeldeinformationen angezeigt.

Wählen Sie zum Löschen der Anmeldeinformationen für eine Verbundidentität das Symbol Löschen für diese Anmeldeinformationen aus.

Voraussetzungen

  • 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 ausführen, sollten Sie die 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 mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. 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 erstellt. 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 den Bezeichner-URI der App – diese Angaben benötigen Sie in den folgenden Schritten. Diese Werte finden Sie im Microsoft Entra Admin Center. Navigieren 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 Actions

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.

subject gibt die GitHub-Organisation, das Repository und die Umgebung für Ihren GitHub Actions-Workflow an. 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 die hier definierten Bedingungen erfüllen.

  • Bei Aufträgen, 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>. Zum Beispiel: repo:n-username/ node_express:ref:refs/heads/my-branch oder repo: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

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 Antragstellernamen: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.

name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.

audiences listet die Zielgruppen auf, die im externen Token angezeigt werden können. Dieses Feld ist obligatorisch. Der empfohlene Wert lautet „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 Anmeldeinformationen für eine Verbundidentität für eine App konfigurieren und eine Vertrauensstellung mit einem externen Identitätsanbieter erstellen. Das folgende Beispiel verwendet eine Softwareworkload, die in Google Cloud ausgeführt wird:

name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.

id: die Objekt-ID, die Anwendungs-ID (Client-ID) oder der Bezeichner-URI der App.

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.

issuer: Muss mit dem Anspruch iss im Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. Eine URL entsprechend der OIDC-Ermittlungsspezifikation. Microsoft Entra ID verwendet diese Aussteller-URL, um die erforderlichen Schlüssel zum Überprüfen des Tokens abzurufen. Für Google Cloud lautet der Aussteller "https://accounts.google.com".

audiences listet die Zielgruppen auf, die im externen Token enthalten sein können. Dieses Feld ist obligatorisch. Der empfohlene Wert lautet „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"
    ]
}

Auflisten der Anmeldeinformationen für Verbundidentitäten für eine App

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

  • Die Beispielskripts können auf zwei Arten ausgeführt werden:
    • 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 erstellt. Gewähren Sie Ihrer App Zugriff auf die Azure-Ressourcen, die von Ihrer externen Softwareworkload verwendet werden.
  • Ermitteln Sie die Objekt-ID der App (nicht die Anwendungs-ID (Client)), die Sie in den folgenden Schritten benötigen. Sie finden die Objekt-ID der App im Microsoft Entra Admin Center. Navigieren 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:

  1. Installieren Sie die aktuelle Version von Azure PowerShell, sofern noch nicht geschehen.

  2. Melden Sie sich bei Azure an.

    Connect-AzAccount
    
  3. 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.

  4. Installieren Sie die Vorabversion des Az.Resources-Moduls, um die Vorgänge für Anmeldeinformationen für eine Verbundidentität 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 Actions

  • ApplicationObjectId: Die Objekt-ID der App (nicht die Anwendungs-ID [Client-ID]), die Sie zuvor in Microsoft Entra ID registriert haben.
  • Issuer identifiziert GitHub als externen Tokenaussteller.
  • 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.
    • Bei Aufträgen, 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>. Zum Beispiel: repo:n-username/ node_express:ref:refs/heads/my-branch oder repo: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.
  • 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. Der empfohlene Wert lautet „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 (nicht die Anwendungs-ID [Client-ID]), die Sie zuvor in Microsoft Entra ID registriert haben.
  • 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 Antragstellernamen: 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 (beispielsweise mithilfe einer in Google Cloud ausgeführten Softwareworkload):

  • 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 entsprechend der OIDC-Ermittlungsspezifikation. Microsoft Entra ID verwendet diese Aussteller-URL, um die erforderlichen Schlüssel zum Überprüfen des Tokens abzurufen. Für Google Cloud lautet der Aussteller "https://accounts.google.com".
  • Audiences: Muss mit dem aud-Anspruch im externen Token übereinstimmen. Aus Sicherheitsgründen sollten Sie einen Wert auswählen, der für Token eindeutig ist, die für Microsoft Entra ID vorgesehen sind. Der empfohlene Wert lautet „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

Abrufen von Anmeldeinformationen für eine Verbundidentität 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 von Anmeldeinformationen für eine Verbundidentität 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

Erstellen Sie eine App-Registrierung in Microsoft Entra ID erstellt. Gewähren Sie Ihrer App Zugriff auf die Azure-Ressourcen, die von Ihrer externen Softwareworkload verwendet werden.

Ermitteln Sie die Objekt-ID der App (nicht die Anwendungs-ID (Client)), die Sie in den folgenden Schritten benötigen. Sie finden die Objekt-ID der App im Microsoft Entra Admin Center. Navigieren 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 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 gibt GitHub als externen Tokenaussteller an. subject gibt die GitHub-Organisation, das Repository und die Umgebung für Ihren GitHub Actions-Workflow an. 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"]}'

Sie erhalten daraufhin 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"
}

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 die hier definierten Bedingungen erfüllen.

  • Bei Aufträgen, 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>. Zum Beispiel: repo:n-username/ node_express:ref:refs/heads/my-branch oder repo: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.

audiences listet die Zielgruppen auf, die im externen Token angezeigt werden können. Dieses Feld ist obligatorisch. Der empfohlene Wert lautet „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 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 Antragstellernamen: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.
  • name ist der Name der Verbundanmeldeinformationen – dieser kann später nicht mehr geändert werden.
  • audiences listet die Zielgruppen auf, die im externen Token angezeigt werden können. Dieses Feld ist obligatorisch. Der empfohlene Wert lautet „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"]}'

Sie erhalten daraufhin 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"
}

Beispiel für andere Identitätsanbieter

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.
  • issuer: Muss mit dem Anspruch iss im Token übereinstimmen, das vom externen Identitätsanbieter ausgestellt wurde. Eine URL entsprechend der OIDC-Ermittlungsspezifikation. Microsoft Entra ID verwendet diese Aussteller-URL, um die erforderlichen Schlüssel zum Überprüfen des Tokens abzurufen. 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 lautet „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"]}'

Sie erhalten daraufhin 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 Anmeldeinformationen für eine Verbundidentität für eine App aufzulisten (angegeben durch die Objekt-ID der App):

az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'

Sie erhalten daraufhin eine Antwort, die in etwa wie folgt aussieht:

{
  "@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'

Sie erhalten daraufhin eine Antwort, die in etwa wie folgt aussieht:

{
  "@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'

Nächste Schritte