Freigeben über


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 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 Ausgeber und Subjekt 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. Dieses Feld hat eine Zeichenbeschränkung von 600 Zeichen.

  • subject ist der Bezeichner der externen Softwareworkload und muss mit dem Anspruch subsubject 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:

  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 & 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 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.

  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 des Fensters

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-ID und die Mandanten-ID kopieren.

    Screenshot: Kopieren der Anwendungs-ID und der Mandanten-ID aus dem 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 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)

  1. Navigieren Sie zu Microsoft Entra-ID, und wählen Sie die Anwendung aus, in der Sie die Verbundidentitätsanmeldeinformationen konfigurieren möchten.
  2. Wählen Sie im linken Navigationsbereich Zertifikate & geheimen Schlüsselaus.
  3. Wählen Sie unter der Registerkarte Verbundanmeldeinformationen die Option Anmeldeinformationen hinzufügen aus.
  4. Wählen Sie im angezeigten Fenster Hinzufügen von Anmeldeinformationen aus dem Dropdownmenü neben Szenario für Verbundanmeldeinformationen "Sonstiger Aussteller"aus.
  5. Geben Sie in Wert den Anspruchsabgleichsausdruck ein, den Sie verwenden möchten.

Voraussetzungen

  • 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 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

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 dem sub 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 dem iss 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-idgibt 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-idgibt 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:

  1. Installieren Sie die neueste Version von Azure PowerShell, wenn Sie dies noch nicht getan haben.

  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 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 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. 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 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 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 listen (angegeben durch die Objekt-ID der App):

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