JSON-webtokenvalidatie (JWT) voor Azure Application Gateway (preview)

Azure Application Gateway valideert JSON-webtokens (JWT's) die zijn uitgegeven door Microsoft Entra ID (voorheen Azure Active Directory) in binnenkomende HTTPS-aanvragen. Deze mogelijkheid biedt afdwinging van first-hop-verificatie voor web-API's of beveiligde resources zonder dat aangepaste code in uw back-endtoepassingen vereist is.

Deze mogelijkheid controleert de integriteit en echtheid van tokens in binnenkomende aanvragen. Vervolgens wordt bepaald of u toegang wilt toestaan of weigeren voordat verkeer naar back-endservices wordt doorgestuurd. Na een geslaagde validatie injecteert de gateway de x-msft-entra-identity header in de aanvraag en stuurt deze door naar de back-end. Downstreamtoepassingen kunnen vervolgens veilig geverifieerde identiteitsgegevens verbruiken.

Door tokenvalidatie aan de rand uit te voeren, vereenvoudigt Application Gateway de toepassingsarchitectuur en versterkt het algehele beveiligingspostuur. JWT-validatie is staatloos. Dat wil gezegd, elke aanvraag moet een geldig token presenteren om toegang te krijgen.

Application Gateway onderhoudt geen sessie- of cookiestatus. Deze aanpak zorgt voor consistente validatie voor aanvragen en afstemming met Zero Trust-principes .

Belangrijk

JWT-validatie in Azure Application Gateway is momenteel in een bètaversie. Deze preview-versie wordt geleverd zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Voor meer informatie, zie Aanvullende Gebruiksvoorwaarden voor Microsoft Azure Previews.

Belangrijkste mogelijkheden

  • Tokenvalidatie: Valideert JWT-handtekening, verlener, tenant, doelgroep en levensduur. Tokens moeten worden uitgegeven door Microsoft Entra-id.
  • Identiteitsdoorgifte: injecteert de x-msft-entra-identity header met tenantId:oid naar de back-end.
  • Flexibele acties: hiermee configureert u (retourneert Deny 401-status) of Allow (doorsturen zonder identiteitsheader) voor ongeldige tokens.
  • Ondersteuning voor meerdere tenants: ondersteunt tenantconfiguraties van algemene organisaties en consumenten.
  • Alleen HTTPS: https-listeners zijn vereist. HTTP wordt niet ondersteund.

Diagram met JWT-validatie voor Application Gateway.

Vereiste voorwaarden

  • Vereisten voor Application Gateway:

    • Standard_v2 of WAF_v2 SKU. De Basic-SKU wordt niet ondersteund.
    • HTTPS-listener, samen met de configuratie van een TLS/SSL-certificaat.
    • Azure Resource Manager API-versie 2025-03-01 of hoger.
  • Netwerkvereisten:

    • Uitgaande connectiviteit van het Application Gateway-subnet naar login.microsoftonline.com TCP-poort 443.
  • Vereisten voor Microsoft Entra-id:

    • Registratie van uw web-API in Microsoft Entra ID.
    • Een aanroep van Microsoft Entra-id om toegang tot een service aan te vragen. Microsoft Entra ID reageert met een toegangstoken.
  • Configuratie van JWT-validatie in Application Gateway.

Een sollicitatie in ID Microsoft Entra registreren

  1. Ga in Azure Portal naar App-registraties.

  2. Selecteer Nieuwe registratie.

  3. Voer bij NaamMyWebAPI in.

  4. Voor ondersteunde accounttypen selecteert u alleen Accounts in deze organisatiemap (alleen Microsoft - Één tenant).

    Opmerking

    Ondersteunde accounttypen zijn:

    • Eén tenant (alleen deze map)
    • Multitenant (enkele Microsoft Entra ID-directory)
    • Accounts in een Microsoft Entra ID-directory en persoonlijke Microsoft-accounts
  5. Voor omleidings-URI (optioneel) kunt u de vakken leeg laten. Deze instelling is niet vereist voor API-scenario's.

  6. Selecteer Registreren.

  7. Noteer de waarden voor toepassings-id (client) en map-id (tenant).

  8. (Optioneel) Een URI voor de toepassings-id configureren:

    1. Ga naar Een API blootstellen>Toepassings-ID URI instellen.
    2. Gebruik de standaard api://<ClientID> - of een aangepaste URI (bijvoorbeeld https://api.contoso.com).
  9. (Optioneel) API-bereiken definiëren:

    • Ga naar Een API> beschikbaarmaken, voeg een bereik toe.

    Deze mogelijkheid is bedoeld voor toekomstige autorisatiefuncties. Dit is niet vereist voor de preview.

JWT-validatie configureren in Application Gateway

  1. Open de previewconfiguratie-portaal.

  2. Open uw Application Gateway-exemplaar, ga naar Instellingen in het linkermenu en selecteer vervolgens JWT-validatieconfiguraties>JWT-validatieconfiguratie toevoegen.

    Schermopname van het deelvenster voor het bijwerken van de JSON-webtokenconfiguratie voor Application Gateway.

  3. Geef de volgende details op:

    Configuratie Example Description
    Naam jwt-policy-1 Vriendelijke naam voor de validatieconfiguratie
    Niet-geautoriseerde aanvraag Deny Optie voor het weigeren van aanvragen met ontbrekende of ongeldige JWT's
    Tenant-id <your-tenant-id> Geldige GUID of een van common, organizations of consumers
    Client-ID <your-client-id> GUID van de app die is geregistreerd in Microsoft Entra
    Doelgroepen <api://<client-id> (Optioneel) Aanvullende geldige waarden voor doelgroepclaims (maximum 5)
  4. Koppel de configuratie aan een routeringsregel, zoals beschreven in de volgende sectie, als u een nieuwe routeringsregel nodig hebt.

Een routeringsregel maken (indien nodig)

  1. Ga naar Application>>om routeringsregel toe te voegen.

  2. Voer de volgende items in of selecteer deze:

    • Listener: Gebruik het protocol HTTPS, een toegewezen certificaat of een Azure Key Vault-geheim.
    • Back-enddoelgroep: selecteer of maak een back-endpool.
    • Back-endinstellingen: gebruik een geschikte HTTP/HTTPS-poort.
    • Regelnaam: Voer een naam in, zoals jwt-route-rule.
  3. Koppel deze regel aan de JWT-validatieconfiguratie.

Uw JWT-validatieconfiguratie is nu gekoppeld aan een beveiligde HTTPS-listener en routeringsregel.

Een JWT-toegangstoken verzenden met elke aanvraag naar de beveiligde toepassing

Als u veilig toegang wilt krijgen tot een toepassing die Application Gateway helpt beveiligen, moet de client eerst een JWT-toegangstoken verkrijgen van het Microsoft Entra ID-tokeneindpunt. De client bevat dit token vervolgens in de autorisatieheader (bijvoorbeeld Authorization: Bearer TOKEN) voor elke aanvraag die naar Application Gateway wordt verzonden.

Application Gateway valideert het token voordat de aanvraag naar de back-endtoepassing wordt doorgestuurd. Deze validatie zorgt ervoor dat alleen geverifieerd en geautoriseerd verkeer de beveiligde toepassing bereikt.

Zie Toegangstokens in het Microsoft Identity Platform voor meer informatie.

Verwachte resultaten van aanvragen

Scenario HTTP-status Identiteitskoptekst Opmerkingen
Geldig token, action=Allow 200 Aanwezig Gevalideerd token, identiteit doorgestuurd
Ongeldig token, action=Deny 401 Afwezig Gateway blokkeert verzoek
Ontbrekend token, action=Deny 401 Afwezig Geen autorisatieheader
Ontbrekende oid claim, action=Deny 403 Afwezig Kritieke claim ontbreekt

Backendverificatie

Controleer de x-msft-entra-identity header om verificatie te bevestigen.

Problemen met 401- en 403-antwoorden oplossen

Als aanvragen de status 401 of 403 retourneren, controleert u:

  • Configuration
    • Tenant-ID of uitgever (iss) komt overeen met uw Microsoft Entra-tenant.
    • Doelgroep (aud) komt overeen met de geconfigureerde client-id of doelgroeplijst.
  • Tokenintegriteit
    • Token is niet verlopen (exp) en nbf bevindt zich niet in de toekomst.
  • Aanvraagopmaak
    • Authorization: Bearer <access_token> header is aanwezig en intact.
  • Plaatsing van gatewaybeleid
    • JWT-validatie is gekoppeld aan de juiste listener en routeringsregel.
  • Nog steeds mislukt?
    • Een nieuw token verkrijgen voor de juiste doelgroep.
    • Controleer de toegangslogboeken van Application Gateway om een gedetailleerde reden van de fout te vinden.

Meer informatie over JWT-validatie en gerelateerde identiteitsfuncties in Azure: