JSON-Webtokenüberprüfung (JWT) in Azure Application Gateway (Vorschau)

Das Azure-Anwendungsgateway überprüft JSON-Webtoken (JWTs), die von Microsoft Entra ID (früher Azure Active Directory) in eingehenden HTTPS-Anforderungen ausgestellt wurden. Diese Funktion bietet die Erzwingung der First-Hop-Authentifizierung für Web-APIs oder jede geschützte Ressource, ohne dass benutzerdefinierter Code in Ihren Back-End-Anwendungen erforderlich ist.

Diese Funktion überprüft die Integrität und Authentizität von Token in eingehenden Anforderungen. Anschließend wird ermittelt, ob der Zugriff zugelassen oder verweigert werden soll, bevor Datenverkehr an Back-End-Dienste weitergeleitet wird. Nach erfolgreicher Überprüfung fügt das Gateway den x-msft-entra-identity Header in die Anforderung ein und leitet ihn an das Back-End weiter. Nachgeschaltete Anwendungen können dann sicher überprüfte Identitätsinformationen nutzen.

Indem die Tokenüberprüfung an der Peripherie durchgeführt wird, vereinfacht das Anwendungsgateway die Anwendungsarchitektur und stärkt die gesamte Sicherheitslage. Die JWT-Überprüfung ist zustandslos. Das heißt, jede Anforderung muss ein gültiges Token für die Gewährung des Zugriffs darstellen.

Das Anwendungs-Gateway verwaltet keinen Sitzungs- oder Cookie-basierten Zustand. Dieser Ansatz trägt dazu bei, eine konsistente Validierung über Anforderungen hinweg und die Ausrichtung mit Zero Trust-Prinzipien sicherzustellen.

Von Bedeutung

Die JWT-Überprüfung im Azure-Anwendungsgateway befindet sich derzeit in der Vorschau. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Wichtige Funktionen

  • Tokenüberprüfung: Überprüft JWT-Signatur, Aussteller, Mandant, Zielgruppe und Lebensdauer. Token müssen von Microsoft Entra ID ausgestellt werden.
  • Identitätspropagierung: Injiziert den x-msft-entra-identity Header mit tenantId:oid in das Backend.
  • Flexible Aktionen: Konfiguriert Deny(Rückgabe des Status 401) oder Allow (Weiterleiten ohne Identitätsheader) für ungültige Tokens.
  • Mehrmandantenunterstützung: Unterstützt die Mandantenkonfigurationen von Organisationen und Verbrauchern.
  • NUR HTTPS: Erfordert HTTPS-Listener. HTTP wird nicht unterstützt.

Diagramm mit der JWT-Überprüfung für das Anwendungsgateway.

Voraussetzungen

  • Anwendungsgatewayanforderungen:

    • Standard_v2 oder WAF_v2 SKU. Die Standard-SKU wird nicht unterstützt.
    • HTTPS-Listener zusammen mit der Konfiguration eines TLS/SSL-Zertifikats.
    • Azure Resource Manager API, Version 2025-03-01 oder höher.
  • Netzwerkanforderungen:

    • Ausgehende Konnektivität vom Subnetz des Anwendungsgateways über TCP-Port 443 zu login.microsoftonline.com.
  • Microsoft Entra-ID-Anforderungen:

    • Registrierung Ihrer Web-API in Microsoft Entra ID.
    • Ein Aufruf der Microsoft Entra-ID, um den Zugriff auf einen Dienst anzufordern. Die Microsoft Entra-ID antwortet mit einem Zugriffstoken.
  • Konfiguration der JWT-Überprüfung im Anwendungsgateway.

Registrieren einer Anwendung in Microsoft Entra ID

  1. Wechseln Sie im Azure-Portal zu App-Registrierungen.

  2. Wählen Sie Neue Registrierung aus.

  3. Geben Sie "MyWebAPI" für "Name" ein.

  4. Wählen Sie für unterstützte Kontotypennur Konten in diesem Organisationsverzeichnis aus (nur Microsoft – Einzelner Mandant).

    Hinweis

    Unterstützte Kontotypen sind:

    • Einzelner Mandant (nur dieses Verzeichnis)
    • Multitenant (beliebiges Microsoft Entra ID-Verzeichnis)
    • Konten in jedem Microsoft Entra ID-Verzeichnis und persönlichen Microsoft-Konten
  5. Bei Umleitungs-URI (optional) können Sie die Felder leer lassen. Diese Einstellung ist für API-Szenarien nicht erforderlich.

  6. Wählen Sie Registrieren aus.

  7. Notieren Sie sich die Werte für die Anwendungs-ID (Client-ID) und die Verzeichnis-ID (Mandanten-ID).

  8. (Optional) Konfigurieren eines Anwendungs-ID-URI:

    1. Wechseln Sie zu API bereitstellen>Anwendungs-ID-URI festlegen.
    2. Verwenden Sie den Standard api://<ClientID> oder einen benutzerdefinierten URI (z. B. https://api.contoso.com).
  9. (Optional) Definieren von API-Bereichen:

    • Wechseln Sie zu Exponieren einer API> und Hinzufügen eines Bereichs.

    Diese Funktion ist für zukünftige Autorisierungsfeatures vorgesehen. Sie ist für die Vorschau nicht erforderlich.

Konfigurieren der JWT-Überprüfung im Anwendungsgateway

  1. Öffnen Sie das Vorschaukonfigurationsportal.

  2. Öffnen Sie Ihre Anwendungsgateway-Instanz, wechseln Sie im linken Menü zu "Einstellungen", und wählen Sie dann "JWT-Überprüfungskonfigurationen>" aus.

    Screenshot des Bereichs zum Aktualisieren der JSON-Webtokenkonfiguration für das Anwendungsgateway.

  3. Geben Sie die folgenden Details an:

    Setting Example Description
    Name jwt-policy-1 Anzeigename für die Validierungskonfiguration
    Nicht autorisierte Anforderung Deny Option zum Ablehnen von Anforderungen mit fehlenden oder ungültigen JWTs
    Mandanten-ID <your-tenant-id> Gültige GUID oder eine von common, organizations, oder consumers
    Client-ID <your-client-id> GUID der in Microsoft Entra registrierten App
    Zielgruppen <api://<client-id> (Optional) Zusätzliche gültige Zielgruppenanspruchswerte (maximal 5)
  4. Ordnen Sie die Konfiguration einer Routingregel zu, wie im folgenden Abschnitt beschrieben, wenn Sie eine neue Routingregel benötigen.

Erstellen einer Routingregel (falls erforderlich)

  1. Wechseln Sie zu Application Gateway>Rules>Add Routing rule.

  2. Geben Sie die folgenden Elemente ein, oder wählen Sie sie aus:

    • Listener: Verwenden Sie das Protokoll HTTPS, ein zugewiesenes Zertifikat oder einen geheimen Azure Key Vault-Schlüssel.
    • Back-End-Ziel: Auswählen oder Erstellen eines Back-End-Pools.
    • Back-End-Einstellungen: Verwenden Sie einen geeigneten HTTP/HTTPS-Port.
    • Regelname: Geben Sie einen Namen ein, wie jwt-route-rule.
  3. Verknüpfen Sie diese Regel mit Ihrer JWT-Überprüfungskonfiguration.

Ihre JWT-Überprüfungskonfiguration ist jetzt an eine sichere HTTPS-Listener- und Routingregel angefügt.

Senden eines JWT-Zugriffstokens mit jeder Anforderung an die sichere Anwendung

Um sicher auf eine Anwendung zuzugreifen, die das Anwendungsgateway schützt, muss der Client zuerst ein JWT-Zugriffstoken vom Microsoft Entra ID-Tokenendpunkt abrufen. Der Client fügt dieses Token dann in den Autorisierungsheader (z. B. Authorization: Bearer TOKEN) jeder Anforderung ein, die er an das Anwendungsgateway sendet.

Das Anwendungsgateway überprüft das Token, bevor die Anforderung an die Back-End-Anwendung weitergeleitet wird. Diese Überprüfung stellt sicher, dass nur authentifizierter und autorisierter Datenverkehr die sichere Anwendung erreicht.

Weitere Informationen finden Sie unter Access-Token in der Microsoft Identity Platform.

Erwartete Ergebnisse von Anfragen

Scenario HTTP-Status Identitätsheader Hinweise
Gültiges Token, action=Allow 200 Anzahl Token überprüft, Identität weitergeleitet
Ungültiges Token, action=Deny 401 Abwesend Das Gateway blockiert die Anfrage
Fehlendes Token, action=Deny 401 Abwesend Kein Autorisierungsheader
Fehlender oid Anspruch, action=Deny 403 Abwesend Kritischer Anspruch fehlt

Back-End-Überprüfung

Überprüfen Sie den Header, um die x-msft-entra-identity Authentifizierung zu bestätigen.

Problembehandlung bei 401- und 403 Antworten

Wenn Anforderungen den Status 401 oder 403 zurückgeben, überprüfen Sie Folgendes:

  • Configuration
    • Die Mandanten-ID oder der Aussteller (iss) entspricht Ihrem Microsoft Entra-Mandanten.
    • Zielgruppe (aud) entspricht der konfigurierten Client-ID oder Zielgruppenliste.
  • Tokenintegrität
    • Das Token ist nicht abgelaufen (exp) und nbf wird in Zukunft nicht mehr angezeigt.
  • Anforderungsformatierung
    • Authorization: Bearer <access_token> Die Kopfzeile ist vorhanden und intakt.
  • Platzierung von Gatewayrichtlinien
    • Die JWT-Überprüfung ist an die richtige Listener- und Routingregel angefügt.
  • Funktioniert es immer noch nicht?
    • Erwerben Sie ein neues Token für die richtige Zielgruppe.
    • Überprüfen Sie die Zugriffsprotokolle des Anwendungsgateways auf einen detaillierten Fehlergrund.

Weitere Informationen zur JWT-Validierung und verwandten Identitätsfeatures in Azure: