Verwaltete Identitäten in Azure Container Apps

Mit einer verwalteten Identität von Microsoft Entra ID kann Ihre Container-App auf andere von Microsoft Entra geschützte Ressourcen zugreifen. Weitere Informationen zu verwalteten Identitäten in Microsoft Entra ID finden Sie unter Verwaltete Identitäten für Azure-Ressourcen.

Ihrer Container-App können zwei Arten von Identitäten zugewiesen werden:

  • Eine systemseitig zugewiesene Identität ist an Ihre Container-App gebunden und wird gelöscht, wenn Ihre App gelöscht wird. Eine App kann nur über eine systemseitig zugewiesene Identität verfügen.
  • Eine benutzerseitig zugewiesene Identität ist eine eigenständige Azure-Ressource, die Ihrer Container-App und anderen Ressourcen zugewiesen werden kann. Eine Container-App kann über mehrere benutzerseitig zugewiesene Identitäten verfügen. Die Identität bleibt bestehen, bis Sie sie löschen.

Gründe für die Verwendung einer verwalteten Identität

Sie können eine verwaltete Identität in einer ausgeführten Container-App verwenden, um sich bei jedem Dienst zu authentifizieren, der die Microsoft Entra-Authentifizierung unterstützt.

Mit verwalteten Identitäten:

Gängige Anwendungsfälle

Systemseitig zugewiesene Identitäten eignen sich am besten für Workloads, die:

  • in einer einzelnen Ressource enthalten sind
  • unabhängige Identitäten benötigen

Benutzerseitig zugewiesene Identitäten sind ideal für Workloads, die:

  • auf mehreren Ressourcen ausgeführt werden und eine einzelne Identität gemeinsam nutzen können
  • vorab für eine sichere Ressource autorisiert werden müssen

Begrenzungen

Die Verwendung verwalteter Identitäten in Skalierungsregeln wird nicht unterstützt. Sie müssen weiterhin die Verbindungszeichenfolge oder den Schlüssel in das secretRef der Skalierungsregel aufnehmen.

Init-Container können nicht auf verwaltete Identitäten zugreifen.

Konfigurieren von verwalteten Identitäten

Sie können Ihre verwalteten Identitäten über Folgendes konfigurieren:

  • dem Azure-Portal
  • Azure CLI
  • Ihre ARM-Vorlage (Azure Resource Manager)

Wenn eine verwaltete Identität in einer ausgeführten Container-App hinzugefügt, gelöscht oder geändert wird, wird die App nicht automatisch neu gestartet, und es wird keine neue Revision erstellt.

Hinweis

Beim Hinzufügen einer verwalteten Identität zu einer Container-App, die vor dem 11. April 2022 bereitgestellt wurde, müssen Sie eine neue Revision erstellen.

Hinzufügen einer systemseitig zugewiesenen Identität

  1. Scrollen Sie im linken Navigationsbereich der Seite Ihrer Container-App nach unten zur Gruppe Einstellungen.

  2. Wählen Sie Identität aus.

  3. Ändern Sie auf der Registerkarte Systemseitig zugewiesen den Status in Ein. Wählen Sie Speichern.

Screenshot of system-assigned identities.

Hinzufügen einer benutzerseitig zugewiesenen Identität

Beim Konfigurieren einer Container-App mit einer benutzerseitig zugewiesenen Identität müssen Sie zuerst die Identität erstellen und dann deren Ressourcenbezeichner zur Konfiguration ihrer Container-App hinzufügen. Sie können benutzerseitig zugewiesene Identitäten über das Azure-Portal oder die Azure-Befehlszeilenschnittstelle erstellen. Informationen zum Erstellen und Verwalten einer benutzerseitig zugewiesenen verwalteten Identität finden Sie unter Benutzerseitig zugewiesene verwaltete Identitäten verwalten.

Zunächst müssen Sie eine Ressource für eine benutzerseitig zugewiesene Identität erstellen.

  1. Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identitätsressource entsprechend den Schritten, die in Verwalten von benutzerseitig zugewiesenen verwalteten Identitäten aufgeführt sind.

  2. Scrollen Sie im linken Navigationsbereich der Seite Ihrer App nach unten zur Gruppe Einstellungen.

  3. Wählen Sie Identität aus.

  4. Wählen Sie auf der Registerkarte Benutzerseitig zugewiesen die Option Hinzufügen aus.

  5. Suchen Sie nach der zuvor erstellten Identität, und wählen Sie sie aus. Klicken Sie auf Hinzufügen.

Screenshot of user-assigned identities.

Konfigurieren einer Zielressource

Für einige Ressourcen müssen Sie Rollenzuweisungen für die verwaltete Identität Ihrer App konfigurieren, um Zugriff zu gewähren. Andernfalls werden Aufrufe von Ihrer App an Dienste wie Azure Key Vault und Azure SQL-Datenbank abgelehnt, selbst wenn Sie ein gültiges Token für diese Identität verwenden. Weitere Informationen zur rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) finden Sie im Artikel Was ist die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC)?. Informationen zu den Ressourcen, die Microsoft Entra-Tokens unterstützen, finden Sie unter Azure-Dienste, die die Microsoft Entra-Authentifizierung unterstützen.

Wichtig

Die Back-End-Dienste für verwaltete Identitäten behalten pro Ressourcen-URI für ca. 24 Stunden einen Cache bei. Wenn Sie die Zugriffsrichtlinie einer bestimmten Zielressource aktualisieren und sofort ein Token für diese Ressource abrufen, erhalten Sie möglicherweise weiterhin ein zwischengespeichertes Token mit veralteten Berechtigungen, bis dieses Token abläuft. Zurzeit gibt es keine Möglichkeit, eine Tokenaktualisierung zu erzwingen.

Verbinden mit Azure-Diensten im App-Code

Mit verwalteten Identitäten kann eine App Token für den Zugriff auf Azure-Ressourcen abrufen, die Microsoft Entra-ID verwenden, z. B. Azure SQL-Datenbank, Azure Key Vault und Azure Storage. Diese Tokens stellen die Anwendung dar, die auf die Ressource zugreift, nicht einen bestimmten Benutzer der Anwendung.

Container Apps bietet einen intern zugänglichen REST-Endpunkt zum Abrufen von Token. Auf den REST-Endpunkt kann innerhalb der App mit einem HTTP GET-Standard zugegriffen werden, der mit einem generischen HTTP-Client in jeder Sprache implementiert werden kann. Für .NET, JavaScript, Java und Python bietet die Azure Identity-Clientbibliothek eine Abstraktion über diesen REST-Endpunkt. Das Herstellen einer Verbindung mit anderen Azure-Diensten ist so einfach wie das Hinzufügen eines Anmeldeinformationsobjekts zum dienstspezifischen Client.

Hinweis

Bei Verwendung der Azure Identity-Clientbibliothek muss die vom Benutzer zugewiesene Client-ID für verwaltete Identität angegeben werden.

Hinweis

Beim Herstellen einer Verbindung mit Azure SQL-Datenquellen mit Entity Framework Core empfiehlt sich die Verwendung von Microsoft.Data.SqlClient, das spezielle Verbindungszeichenfolgen für Verbindungen mit verwalteten Identitäten bietet.

In .NET-Apps ist es am einfachsten, über die Azure Identity-Clientbibliothek mit einer verwalteten Identität zu arbeiten. Weitere Informationen finden Sie in den entsprechenden Dokumentationsüberschriften der Clientbibliothek:

In den verknüpften Beispielen wird DefaultAzureCredential verwendet. Dies ist für die meisten Szenarien sinnvoll, da das gleiche Muster in Azure (mit verwalteten Identitäten) und auf Ihrem lokalen Computer (ohne verwaltete Identitäten) funktioniert.

Anzeigen verwalteter Identitäten

Sie können die systemseitig zugewiesenen und benutzerseitig zugewiesenen verwalteten Identitäten mithilfe des folgenden Azure CLI-Befehls anzeigen. Die Ausgabe zeigt den Typ der verwalteten Identität, Mandanten-IDs und Prinzipal-IDs aller verwalteten Identitäten an, die Ihrer Container-App zugewiesen sind.

az containerapp identity show --name <APP_NAME> --resource-group <GROUP_NAME>

Entfernen einer verwalteten Identität

Wenn Sie eine vom System zugewiesene Identität entfernen, wird sie aus Microsoft Entra ID gelöscht. Vom System zugewiesene Identitäten werden auch automatisch aus der Microsoft Entra-ID entfernt, wenn Sie die Container-App-Ressource selbst löschen. Durch das Entfernen von vom Benutzer zugewiesenen verwalteten Identitäten aus Ihrer Container-App werden sie nicht aus der Microsoft Entra-ID entfernt.

  1. Scrollen Sie im linken Navigationsbereich der Seite Ihrer App nach unten zur Gruppe Einstellungen.

  2. Wählen Sie Identität aus. Führen Sie dann die Schritte basierend auf dem Identitätstyp aus:

    • Vom System zugewiesene Identität: Ändern Sie auf der Registerkarte Vom System zugewiesen den Status zu Aus. Wählen Sie Speichern.
    • Vom Benutzer zugewiesene Identität: Klicken Sie auf die Registerkarte Vom Benutzer zugewiesen, aktivieren Sie das Kontrollkästchen für die Identität, und klicken Sie auf Entfernen. Klicken Sie auf Ja, um zu bestätigen.

Nächste Schritte