Verwaltete Identitäten in Azure Container Apps

Mit einer verwalteten Microsoft Entra ID-Identität 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 Sie Ihrer Container-App und anderen Ressourcen zuweisen können. Eine Container-App kann über mehrere benutzerseitig zugewiesene Identitäten verfügen. Benutzerseitig zugewiesene Identitäten sind vorhanden, 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:

  • Ihre App stellt mit der verwalteten Identität eine Verbindung mit Ressourcen her. Sie müssen keine Anmeldeinformationen in Ihrer Container-App verwalten.
  • Sie können die rollenbasierte Zugriffssteuerung verwenden, um einer verwalteten Identität bestimmte Berechtigungen zuzuweisen.
  • Systemseitig zugewiesene Identitäten werden automatisch erstellt und verwaltet. Sie werden gelöscht, wenn Ihre Container-App gelöscht wird.
  • Sie können benutzerseitig zugewiesene Identitäten hinzufügen und löschen und mehreren Ressourcen zuweisen. Sie sind unabhängig vom Lebenszyklus Ihrer Container-App.
  • Sie können eine verwaltete Identität für die Authentifizierung bei einer privaten Azure Container Registry-Instanz ohne Benutzername und Kennwort verwenden, um Container für Ihre Container-App zu pullen.
  • Mit einer verwalteten Identität können Sie Verbindungen für Dapr-fähige Anwendungen über Dapr-Komponenten herstellen.

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

  • Verwaltete Identitäten in Skalierungsregeln werden nicht unterstützt. Sie müssen Verbindungszeichenfolgen oder Schlüssel in die secretRef der Skalierungsregel einschließen.
  • 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. Navigieren Sie im Azure-Portal zu Ihrer Container App.

  2. Wählen Sie in der Gruppe Einstellungen die Option Identität aus.

  3. Ändern Sie auf der Registerkarte Systemseitig zugewiesen den Status in Ein.

  4. Wählen Sie Speichern.

Screenshot: Systemseitig zugewiesene Identitäten

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. Navigieren Sie im Azure-Portal zu Ihrer Container App.

  3. Wählen Sie in der Gruppe Einstellungen die Option 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.

  6. Wählen Sie Hinzufügen.

Screenshot: Benutzerseitig zugewiesene Identitäten

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 (z. B. Azure Key Vault und Azure SQL-Datenbank) abgelehnt, auch 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. Das Erzwingen einer Tokenaktualisierung wird nicht unterstützt.

Verbinden mit Azure-Diensten im App-Code

Mit verwalteten Identitäten kann eine App Tokens 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. Der REST-Endpunkt ist in der App mit der HTTP-Standardanforderung GET verfügbar, die Sie mit einem generischen HTTP-Client in Ihrer bevorzugten Sprache senden können. Für .NET, JavaScript, Java und Python bietet die Azure Identity-Clientbibliothek eine Abstraktion über diesen REST-Endpunkt. Sie können eine Verbindung mit anderen Azure-Diensten herstellen, indem Sie dem dienstspezifischen Client ein Anmeldeinformationsobjekt hinzufügen.

Hinweis

Bei Verwendung der Azure Identity-Clientbibliothek müssen Sie explizit die Client-ID für die benutzerseitig zugewiesene verwaltete Identität angeben.

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 folgenden Ressourcen:

In den verknüpften Beispielen wird DefaultAzureCredential verwendet. Dieses Objekt ist in den meisten Szenarios effektiv, da dasselbe 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. Systemseitig zugewiesene Identitäten werden auch automatisch aus Microsoft Entra ID entfernt, wenn Sie die Container-App-Ressource selbst löschen. Durch das Entfernen der benutzerseitig zugewiesenen verwalteten Identitäten aus Ihrer Container-App werden sie nicht aus 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