Aktivieren der Authentifizierung und Autorisierung in Azure Container Apps mit Microsoft Entra ID
In diesem Artikel wird gezeigt, wie Sie die Authentifizierung für Azure Container Apps so konfigurieren, dass Ihre App Benutzer mit Microsoft Identity Platform als Authentifizierungsanbieter anmeldet.
Mit der Container Apps-Authentifizierungsfunktion kann automatisch eine App-Registrierung mit Microsoft Identity Platform erstellt werden. Sie können auch eine Registrierung verwenden, die Sie oder ein Verzeichnis-Administrator separat erstellen.
- Das automatische Erstellen einer neuen App-Registrierung
- Verwenden Sie eine vorhandene, separat erstellte Registrierung
Option 1: Automatisches Erstellen einer neuen App-Registrierung
Diese Option ist so konzipiert, dass die Authentifizierung ganz einfach und mit nur wenigen Schritten aktiviert werden kann.
Melden Sie sich am Azure-Portal an und navigieren Sie zu Ihrer App.
Wählen Sie Authentifizierung im Menü auf der linken Seite. Wählen Sie Identitätsanbieter hinzufügen aus.
Wählen Sie Microsoftin der Dropdown-Liste der Identitätsanbieter aus. Die Option zum Erstellen einer neuen Registrierung ist standardmäßig ausgewählt. Sie können den Namen der Registrierung oder die unterstützten Kontotypen ändern.
Ein geheimer Clientschlüssel wird erstellt und als Geheimnis in der Container-App gespeichert.
Wenn Sie den ersten Identitätsanbieter für diese Anwendung konfigurieren, wird ein Abschnitt mit den Einstellungen für die Container Apps-Authentifizierung angezeigt. Andernfalls fahren Sie mit dem nächsten Schritt fort.
Diese Optionen bestimmen, wie Ihre Anwendung auf nicht authentifizierte Anfragen reagiert, und die Standardeinstellungen leiten alle Anfragen zur Anmeldung mit diesem neuen Anbieter um. Sie können dieses Verhalten jetzt anpassen oder diese Einstellungen später über den Hauptbildschirm der Authentifizierung anpassen, indem Sie neben den Authentifizierungseinstellungen die Option Bearbeiten auswählen. Weitere Informationen zu diesen Optionen finden Sie unter Authentifizierungs-Fluss.
(Optional) Wählen Sie Weiter: Berechtigungen aus, und fügen Sie alle von der Anwendung benötigten Bereiche hinzu. Die Bereiche werden der App-Registrierung hinzugefügt, Sie können Sie jedoch später auch ändern.
Wählen Sie Hinzufügen.
Sie sind nun bereit, die Microsoft Identity Platform für die Authentifizierung in Ihrer App zu verwenden. Der Anbieter wird auf dem Bildschirm Authentifizierung aufgeführt. Von dort aus können Sie diese Anbieterkonfiguration bearbeiten oder löschen.
Option 2: Verwenden einer vorhandenen, separat erstellten Registrierung
Sie können Ihre Anwendung auch manuell für Microsoft Identity Platform registrieren, die Registrierung anpassen und die Container Apps-Authentifizierung mit den Registrierungsdetails konfigurieren. Dieser Ansatz ist hilfreich, wenn Sie eine App-Registrierung von einem anderen Microsoft Entra-Mandanten als dem verwenden möchten, in dem Ihre Anwendung definiert ist.
Erstellen einer App-Registrierung in Microsoft Entra ID für Ihre Container-App
Erstellen Sie zuerst Ihre App-Registrierung. Notieren Sie dabei die folgenden Informationen, die Sie später beim Konfigurieren der Authentifizierung in der Container-App benötigen:
- Client-ID
- Mandanten-ID
- Geheimer Clientschlüssel (optional)
- Anwendungs-ID-URI
Gehen Sie wie folgt vor, um die App zu registrieren:
- Melden Sie sich beim Azure-Portal an.
- Suchen Sie die Option Container Apps, wählen Sie sie aus, und wählen Sie dann Ihre App aus. Notieren Sie sich auf der Seite Übersicht die Anwendungs-URL Ihrer App. Sie verwenden diese, um die Registrierung Ihrer Microsoft Entra-App zu konfigurieren.
- Klicken Sie auf Startseite, um zum Hauptmenü des Portals zurückzukehren. Suchen Sie nach Microsoft Entra ID, und wählen Sie es aus.
- Wählen Sie auf der Seite Übersicht die Option Hinzufügen und dann App-Registrierung aus.
Geben Sie auf der Seite Anwendung registrieren einen Namen für Ihre App-Registrierung ein.
Wählen Sie unter Umleitungs-URI die Option Web aus, und geben Sie Folgendes ein. Ersetzen Sie
\<APP_URL\>
durch die zuvor notierte Anwendungs-URL.<APP_URL>/.auth/login/aad/callback
.Beispiel:
https://<CONTAINER_APP_NAME>.<ENVIRONMENT_UNIQUE_ID>.<REGION_NAME>.azurecontainerapps.io/.auth/login/aad/callback
Aktivieren Sie unter Implizite Genehmigung und Hybridflows die Option ID-Token, um OpenID Connect-Benutzeranmeldungen von Container Apps zuzulassen.
Wählen Sie Registrieren aus.
- Navigieren Sie zur der neuen App-Registrierung.
- Kopieren Sie auf der Seite Übersicht die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant) zur späteren Verwendung.
- (Optional:) Wenn Sie den Umleitungs-URI zuvor nicht der App-Registrierung hinzugefügt haben, können Sie dies jetzt tun.
Wählen Sie unter Verwaltet die Option Authentifizierung aus.
Wählen Sie auf der Seite Authentifizierung unter Plattformkonfigurationen die Option Plattform hinzufügen aus.
Wählen Sie unter Plattformen konfigurieren die Option Web aus.
Geben Sie in Web konfigurieren unter Weiterleitungs-URIs Folgendes ein. Ersetzen Sie
\<APP_URL\>
durch die zuvor notierte Anwendungs-URL.<APP_URL>/.auth/login/aad/callback
.Beispiel:
https://<CONTAINER_APP_NAME>.<HOSTNAME>.<LOCATION>.azurecontainerapps.io/.auth/login/aad/callback
Wählen Sie Konfigurieren aus.
- (Optional:) Wählen Sie unter Verwalten die Optionen Branding & Eigenschaften aus. Geben Sie unter URL der Startseite die URL Ihrer Container-App ein, und wählen Sie Speichern aus.
- Wählen Sie unter Verwalten die Option Eine API verfügbar machen aus.
Wählen Sie neben Anwendungs-ID-URI die Option Hinzufügen aus.
Der Anwendungs-ID-URI identifiziert die Anwendung eindeutig, wenn er als Ressource verwendet wird, sodass über angeforderte Token Zugriff gewährt werden kann. Der Wert wird außerdem als Präfix für Bereiche verwendet, die Sie erstellen.
Für eine App mit nur einem Mandanten können Sie den Standardwert verwenden, der die Form
api://<APPLICATION_CLIENT_ID>
aufweist. Sie können auch einen besser lesbaren URI wiehttps://contoso.com/api
basierend auf einer der überprüften Domänen für Ihren Mandanten angeben. Für eine mehrinstanzenfähige App müssen Sie einen benutzerdefinierten URI angeben. Weitere Informationen zu akzeptierten Formaten für App-ID-URIs finden Sie in der Referenz zu bewährten Methoden für App-Registrierungen.Der Wert wird automatisch gespeichert.
Wählen Sie Bereich hinzufügen.
Unter Bereich hinzufügen ist der Anwendungs-ID-URI der Wert, den Sie in einem vorherigen Schritt festgelegt haben.
Wählen Sie Speichern und fortfahren aus.
Geben Sie in Bereichsname den Namen user_impersonation ein.
Geben Sie den Anzeigenamen der Administratoreinwilligung und die Beschreibung der Administratoreinwilligung ein, die Administratoren auf der Zustimmungsseite angezeigt werden sollen. Ein Beispiel für einen Anzeigenamen der Einwilligung lautet Zugriff <Anwendungsname>.
Wählen Sie Bereich hinzufügen aus.
- Wählen Sie unter Verwalten die Option Zertifikate und Geheimnisse aus.
- Wählen Sie auf der Seite Zertifikate und Geheimnisse die Option Geheime Clientschlüssel aus.
- Wählen Sie Neuer geheimer Clientschlüssel.
- Geben Sie eine Beschreibung ein, und wählen Sie aus, wann der geheime Schlüssel abläuft.
- Wählen Sie Hinzufügen.
- Kopieren Sie den Wert des geheimen Clientschlüssels, der auf der Seite angezeigt wird, da dieser nicht nochmals auf der Site angezeigt wird.
Aktivieren von Microsoft Entra ID in Ihrer Container-App
Melden Sie sich am Azure-Portal an und navigieren Sie zu Ihrer App.
Wählen Sie Authentifizierung im Menü auf der linken Seite. Wählen Sie Identitätsanbieter hinzufügen aus.
Wählen Sie Microsoftin der Dropdown-Liste der Identitätsanbieter aus.
Für App-Registrierungstyp können Sie Vorhandene App-Registrierung in diesem Verzeichnis auswählen auswählen, wodurch die erforderlichen App-Informationen automatisch erfasst werden. Wenn Ihre Registrierung von einem anderen Mandanten aus erfolgt oder Sie nicht über die Berechtigung zum Anzeigen des Registrierungsobjekts verfügen, wählen Sie Details zu einer vorhandenen App-Registrierung angeben aus. Für diese Option müssen Sie die folgenden Konfigurationsdetails ausfüllen:
Warnung
Vermeiden Sie nach Möglichkeit die Verwendung des impliziten Genehmigungsflusses. In den meisten Szenarien sind sicherere Alternativen verfügbar und werden daher empfohlen. Bestimmte Konfigurationen dieses Flows erfordern ein sehr hohes Maß an Vertrauen in die Anwendung und bergen Risiken, die in anderen Flows nicht vorhanden sind. Verwenden Sie diesen Flow nur, wenn kein anderer Flow verfügbar ist, der mehr Sicherheit bietet. Weitere Informationen finden Sie in den Sicherheitsaspekten mit dem impliziten Genehmigungsfluss.
Feld BESCHREIBUNG Anwendungs-ID (Client) Verwenden Sie die Anwendungs-ID (Client) der App-Registrierung. Geheimer Clientschlüssel Verwenden Sie den geheimen Clientschlüssel, den Sie in der App-Registrierung generiert haben. Bei geheimen Clientschlüsseln wird der Hybridflow verwendet, und die App gibt Zugriffs- und Aktualisierungstoken zurück. Wenn kein geheimer Clientschlüssel festgelegt ist, wird der implizite Flow verwendet und nur ein ID-Token zurückgegeben. Die Token werden vom Anbieter gesendet und im EasyAuth-Tokenspeicher gespeichert. Aussteller-URL Verwenden Sie <authentication-endpoint>/<TENANT-ID>/v2.0
, und ersetzen Sie <authentication-endpoint> durch den Authentifizierungsendpunkt für Ihre Cloudumgebung (z. B. „https://login.microsoftonline.com"“ für globales Azure), und ersetzen Sie <TENANT-ID> durch die Verzeichnis-ID (Mandant), in der die App-Registrierung erstellt wurde. Dieser Wert wird verwendet, um Benutzer zum richtigen Microsoft Entra-Mandanten umzuleiten und die entsprechenden Metadaten herunterzuladen (z. B. zum Ermitteln der entsprechenden Tokensignaturschlüssel und des Anspruchswerts des Tokenausstellers). Bei Anwendungen, die Azure AD v1 verwenden, müssen Sie/v2.0
in der URL auslassen.Zulässige Tokenzielgruppen Die konfigurierte Anwendungs-ID (Client) wird immer implizit als zulässige Zielgruppe angesehen. Wenn es sich bei dem Wert um eine Cloud- oder Server-App handelt und Sie Authentifizierungstoken von einer Clientcontainer-App akzeptieren möchten (das Authentifizierungstoken kann im X-MS-TOKEN-AAD-ID-TOKEN
-Header abgerufen werden), fügen Sie hier die Anwendungs-ID (Client) der Client-App hinzu.Der geheime Clientschlüssel wird in Ihrer Container-App als Geheimnis gespeichert.
Wenn dies der erste Identitätsanbieter ist, der für die Anwendung konfiguriert wird, wird auch ein Abschnitt mit den Einstellungen für die Container Apps-Authentifizierung angezeigt. Andernfalls fahren Sie mit dem nächsten Schritt fort.
Diese Optionen bestimmen, wie Ihre Anwendung auf nicht authentifizierte Anfragen reagiert, und die Standardeinstellungen leiten alle Anfragen zur Anmeldung mit diesem neuen Anbieter um. Sie können dieses Verhalten jetzt anpassen oder diese Einstellungen später über den Hauptbildschirm der Authentifizierung anpassen, indem Sie neben den Authentifizierungs-Einstellungendie Option Bearbeiten auswählen. Weitere Informationen zu diesen Optionen finden Sie unter Authentifizierungs-Fluss.
Klicken Sie auf Hinzufügen.
Sie sind nun bereit, die Microsoft Identity Platform für die Authentifizierung in Ihrer App zu verwenden. Der Anbieter wird auf dem Bildschirm Authentifizierung aufgeführt. Von dort aus können Sie diese Anbieterkonfiguration bearbeiten oder löschen.
Konfigurieren von Client-Apps für den Zugriff auf Ihre Container-App
Im vorherigen Abschnitt haben Sie Ihre Container-App registriert, um Benutzer zu authentifizieren. In diesem Abschnitt registrieren Sie native Client- oder Daemon-Apps. Diese können im Namen von Benutzern oder für sich selbst Zugriff auf APIs anfordern, die von Ihrer Container-App verfügbar gemacht werden. Sie müssen die in diesem Abschnitt beschriebenen Schritte nicht ausführen, wenn Sie nur Benutzer authentifizieren möchten.
Native Clientanwendung
Sie können native Clients registrieren, um im Namen eines angemeldeten Benutzers Zugriff auf die APIs Ihrer Container-App anzufordern.
Wählen Sie im Azure-Portal Microsoft Entra ID>Hinzufügen>App-Registrierungen.
Geben Sie auf der Seite Anwendung registrieren einen Namen für Ihre App-Registrierung ein.
Wählen Sie unter Umleitungs-URI die Option Öffentlicher Client (Mobilgerät und Desktop) aus, und geben Sie die URL
<app-url>/.auth/login/aad/callback
ein. Beispiel:https://<hostname>.azurecontainerapps.io/.auth/login/aad/callback
.Hinweis
Für eine Microsoft Store-Anwendung verwenden Sie stattdessen die Paket-SID als URI.
Klicken Sie auf Erstellen.
Sobald die App-Registrierung erstellt wurde, kopieren Sie den Wert von Anwendungs-ID (Client) .
Wählen Sie über die Option API-Berechtigungen>Berechtigung hinzufügen>Meine APIs aus.
Wählen Sie die App-Registrierung aus, die Sie zuvor für Ihre Container-App erstellt haben. Falls die App-Registrierung nicht angezeigt wird, stellen Sie sicher, dass Sie unter Erstellen einer App-Registrierung in Microsoft Entra ID für Ihre Container-App den Bereich user_impersonation hinzugefügt haben.
Wählen Sie unter Delegierte Berechtigungen den Eintrag user_impersonation aus, und wählen Sie dann Berechtigungen hinzufügen aus.
In diesem Abschnitt haben Sie eine native Clientanwendung konfiguriert, die im Namen eines Benutzers Zugriff auf Ihre Container-App anfordern kann.
Daemon-Clientanwendung (Dienst-zu-Dienst-Aufrufe)
Ihre Anwendung kann ein Token abrufen, um eine Web-API, die in Ihrer Container-App gehostet wird, in deren eigenen Namen (nicht im Namen eines Benutzers) aufzurufen. Dieses Szenario ist nützlich für nicht interaktive Daemon-Anwendungen, die Aufgaben ohne angemeldeten Benutzer ausführen. Es verwendet die Standardzuweisung für Clientanmeldeinformationen von OAuth 2.0.
- Wählen Sie im Azure-Portal Microsoft Entra ID>Hinzufügen>App-Registrierungen.
- Geben Sie auf der Seite Anwendung registrieren einen Namen für Ihre Daemon-App-Registrierung ein.
- Für eine Daemon-Anwendung benötigen Sie keinen Umleitungs-URI, sodass Sie diesen Wert leer lassen können.
- Klicken Sie auf Erstellen.
- Sobald die App-Registrierung erstellt wurde, kopieren Sie den Wert von Anwendungs-ID (Client) .
- Wählen Sie Zertifikate und Geheimnisse>Neuer geheimer Clientschlüssel>Hinzufügen aus. Kopieren Sie den Wert des geheimen Clientschlüssels, der auf der Seite angezeigt wird. Er wird nicht erneut angezeigt.
Sie können jetzt ein Zugriffstoken mithilfe der Client-ID und des geheimen Clientschlüssels anfordern, indem Sie den Parameter resource
auf den Anwendungs-ID-URI der Ziel-App festlegen. Das resultierende Zugriffstoken kann mithilfe des standardmäßigen OAuth 2.0-Autorisierungsheaders für die Ziel-App bereitgestellt werden, woraufhin die Container Apps-Authentifizierung/-Autorisierung das Token überprüft und wie üblich verwendet, um anzuzeigen, dass der Aufrufer (in diesem Fall eine Anwendung, kein Benutzer) authentifiziert ist.
Dieser Prozess ermöglicht es jeder Clientanwendung in Ihrem Microsoft Entra-Mandanten, ein Zugriffstoken anzufordern und sich bei der Ziel-App zu authentifizieren. Wenn Sie außerdem bei der Autorisierung erzwingen möchten, dass nur bestimmte Clientanwendungen zugelassen werden, müssen Sie die Konfiguration anpassen.
- Definieren Sie eine App-Rolle im Manifest der App-Registrierung, die die Container-App darstellt, die Sie schützen möchten.
- Wählen Sie in der App-Registrierung, die den Client darstellt, der autorisiert werden muss, API-Berechtigungen>Berechtigung hinzufügen>Meine APIs aus.
- Wählen Sie die App-Registrierung aus, die Sie zuvor erstellt haben. Wenn keine App-Registrierung angezeigt wird, stellen Sie sicher, dass Sie eine App-Rolle hinzugefügt haben.
- Wählen Sie unter Anwendungsberechtigungen die zuvor erstellte App-Rolle aus, und wählen Sie dann Berechtigungen hinzufügen aus.
- Wählen Sie unbedingt Administratoreinwilligung erteilen aus, um die Clientanwendung zum Anfordern der Berechtigung zu autorisieren.
- Ähnlich wie im vorherigen Szenario (vor dem Hinzufügen jeglicher Rollen) können Sie jetzt für dieselbe Ziel-
resource
ein Zugriffstoken anfordern. Das Zugriffstoken enthält dann einenroles
-Anspruch mit den App-Rollen, die für die Clientanwendung autorisiert wurden. - Überprüfen Sie im Container Apps-Zielcode, ob die erwarteten Rollen jetzt im Token vorhanden sind. Die Container Apps-Authentifizierungsebene führt die Überprüfungsschritte nicht aus. Weitere Informationen finden Sie unter Zugriff auf Benutzeransprüche.
In diesem Abschnitt haben Sie eine Daemon-Clientanwendung konfiguriert, die unter Verwendung ihrer eigenen Identität auf Ihre Container-App zugreifen kann.
Arbeiten mit authentifizierten Benutzern
In den folgenden Anleitungen erfahren Sie mehr über das Arbeiten mit authentifizierten Benutzern: