Een API beveiligen in Azure API Management met behulp van OAuth 2.0-autorisatie met Microsoft Entra ID

VAN TOEPASSING OP: Alle API Management-lagen

In dit artikel leert u de stappen op hoog niveau voor het configureren van uw Azure API Management-exemplaar om een API te beveiligen met behulp van het OAuth 2.0-protocol met Microsoft Entra ID.

Zie Verificatie en autorisatie voor API's in API Management voor een conceptueel overzicht van API-autorisatie.

Vereisten

Voordat u de stappen in dit artikel volgt, moet u beschikken over:

  • Een API Management-exemplaar
  • Een gepubliceerde API met behulp van het API Management-exemplaar
  • Een Microsoft Entra-tenant

Overzicht

Volg deze stappen om een API in API Management te beveiligen met behulp van OAuth 2.0-autorisatie met Microsoft Entra-id.

  1. Registreer een toepassing (in dit artikel back-end-app genoemd) in Microsoft Entra ID om de toegang tot de API te beveiligen.

    Voor toegang tot de API krijgen gebruikers of toepassingen een geldig OAuth-token dat toegang verleent tot deze app met elke API-aanvraag.

  2. Configureer het validatie-jwt-beleid in API Management om het OAuth-token te valideren dat wordt weergegeven in elke binnenkomende API-aanvraag. Geldige aanvragen kunnen worden doorgegeven aan de API.

Meer informatie over OAuth-autorisatiestromen en het genereren van de vereiste OAuth-tokens valt buiten het bereik van dit artikel. Normaal gesproken wordt een afzonderlijke client-app gebruikt voor het verkrijgen van tokens van Microsoft Entra-id die toegang tot de API autoriseren. Zie de volgende stappen voor koppelingen naar meer informatie.

Een toepassing registreren in Microsoft Entra-id om de API weer te geven

Beveilig een API met Microsoft Entra ID met behulp van Azure Portal door eerst een toepassing te registreren die de API vertegenwoordigt.

Zie quickstart: Een toepassing configureren om een web-API beschikbaar te maken voor meer informatie over app-registratie.

  1. Zoek in de Azure-portalApp-registraties en selecteer deze optie.

  2. Selecteer Nieuwe registratie.

  3. Wanneer de pagina Een toepassing registreren wordt weergegeven, voert u de registratiegegevens van uw toepassing in:

    • Voer in de sectie Naam een beschrijvende toepassingsnaam in die wordt weergegeven aan gebruikers van de app, zoals back-end-app.
    • Selecteer in de sectie Ondersteunde accounttypen een optie die bij uw scenario past.
  4. Laat de sectie Omleidings-URI leeg.

  5. Selecteer Registreren om de toepassing te maken.

  6. Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor later.

  7. Selecteer in de sectie Beheren van het zijmenu een API beschikbaar maken en stel de URI van de toepassings-id in met de standaardwaarde. Als u een afzonderlijke client-app ontwikkelt om OAuth 2.0-tokens te verkrijgen voor toegang tot de back-end-app, registreert u deze waarde voor later gebruik.

  8. Selecteer de knop Een bereik toevoegen om de pagina Een bereik toevoegen weer te geven:

    1. Voer een nieuwe naam van het bereik in, Beheer weergavenaam van toestemming en Beheer beschrijving van toestemming.
    2. Zorg ervoor dat de bereikstatus Ingeschakeld is geselecteerd.
  9. Selecteer de knop Bereik toevoegen om het bereik te maken.

  10. Herhaal de vorige twee stappen om alle bereiken toe te voegen die door uw API worden ondersteund.

  11. Zodra de bereiken zijn gemaakt, noteert u deze voor later gebruik.

Een JWT-validatiebeleid configureren om aanvragen vooraf te autoriseren

Het volgende voorbeeldbeleid, wanneer dit wordt toegevoegd aan de <inbound> beleidssectie, controleert de waarde van de doelgroepclaim in een toegangstoken dat is verkregen van Microsoft Entra-id die wordt weergegeven in de autorisatieheader. Er wordt een foutbericht geretourneerd als het token ongeldig is. Configureer dit beleid op een beleidsbereik dat geschikt is voor uw scenario.

  • In de openid-config URL is dit de aad-tenant tenant-id in Microsoft Entra-id. Zoek deze waarde in Azure Portal, bijvoorbeeld op de overzichtspagina van uw Microsoft Entra-resource. In het voorbeeld wordt ervan uitgegaan dat een Microsoft Entra-app met één tenant en een v2-configuratie-eindpunt wordt gebruikt.
  • De waarde van het claim bestand is de client-id van de back-end-app die u hebt geregistreerd in Microsoft Entra-id.
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
    <openid-config url="https://login.microsoftonline.com/{aad-tenant}/v2.0/.well-known/openid-configuration" />
    <audiences>
        <audience>{audience-value - (ex:api://guid)}</audience>
    </audiences>
    <issuers>
        <issuer>{issuer-value - (ex: https://sts.windows.net/{tenant id}/)}</issuer>
    </issuers>
    <required-claims>
        <claim name="aud">
            <value>{backend-app-client-id}</value>
        </claim>
    </required-claims>
</validate-jwt>

Notitie

De voorgaande openid-config URL komt overeen met het v2-eindpunt. Gebruik https://login.microsoftonline.com/{aad-tenant}/.well-known/openid-configurationvoor het v1-eindpunt openid-config .

Zie Beleidsregels instellen of bewerken voor meer informatie over het configureren van beleidsregels. Raadpleeg de referentie validate-jwt voor meer aanpassingen in JWT-validaties. Api Management biedt ook het validate-azure-ad-token beleid om een JWT te valideren die is geleverd door de Microsoft Entra-service.

Autorisatiewerkstroom

  1. Een gebruiker of toepassing verkrijgt een token van Microsoft Entra ID met machtigingen die toegang verlenen tot de back-end-app.

  2. Het token wordt toegevoegd in de autorisatieheader van API-aanvragen aan API Management.

  3. API Management valideert het token met behulp van het validate-jwt beleid.

    • Als een aanvraag geen geldig token heeft, blokkeert API Management dit.

    • Als een aanvraag vergezeld gaat van een geldig token, kan de gateway de aanvraag doorsturen naar de API.

Volgende stappen