Share via


Referentiebeheer configureren - door de gebruiker gedelegeerde toegang tot de back-end-API

VAN TOEPASSING OP: Alle API Management-lagen

In dit artikel wordt u begeleid bij de stappen op hoog niveau voor het configureren en gebruiken van een beheerde verbinding waarmee Microsoft Entra-gebruikers of -groepen gedelegeerde machtigingen worden verleend aan een back-end-OAuth 2.0-API. Volg deze stappen voor scenario's waarin een client-app (of bot) toegang moet hebben tot beveiligde online-back-endbronnen namens een geverifieerde gebruiker (bijvoorbeeld het controleren van e-mailberichten of het plaatsen van een bestelling).

Overzicht van scenario

Notitie

Dit scenario is alleen van toepassing op referentieproviders die zijn geconfigureerd met het toekenningstype autorisatiecode .

In dit scenario configureert u een beheerde verbinding waarmee een client-app (of bot) toegang krijgt tot een back-end-API namens een Microsoft Entra-gebruiker of -groep. U hebt bijvoorbeeld een statische web-app die toegang heeft tot een back-end GitHub-API en die u toegang wilt geven tot gegevens die specifiek zijn voor de aangemelde gebruiker. In het volgende diagram ziet u het scenario.

Diagram van de processtroom voor door de gebruiker gedelegeerde machtigingen.

  • De gebruiker moet de app autoriseren om namens hen toegang te krijgen tot beveiligde resources en om de app te autoriseren, moet de gebruiker zijn identiteit verifiëren
  • Als u bewerkingen wilt uitvoeren namens een gebruiker, roept de app de externe back-endservice aan, zoals Microsoft Graph of GitHub
  • Elke externe service heeft een manier om deze aanroepen te beveiligen, bijvoorbeeld met een gebruikerstoken waarmee de gebruiker uniek wordt geïdentificeerd
  • Om de aanroep naar de externe service te beveiligen, moet de app de gebruiker vragen zich aan te melden, zodat het token van de gebruiker kan worden verkregen
  • Als onderdeel van de configuratie wordt een referentieprovider geregistreerd met behulp van de referentiebeheerder in het API Management-exemplaar. Het bevat informatie over de id-provider die moet worden gebruikt, samen met een geldige OAuth-client-id en -geheim, de OAuth-bereiken die moeten worden ingeschakeld en andere metagegevens van de verbinding die door die id-provider zijn vereist.
  • Er wordt ook een verbinding gemaakt en gebruikt om de gebruiker aan te melden en het gebruikerstoken op te halen, zodat het kan worden beheerd

Vereisten

  • Toegang tot een Microsoft Entra-tenant waarvoor u machtigingen hebt om een app-registratie te maken en beheerderstoestemming te verlenen voor de machtigingen van de app. Meer informatie

    Als u uw eigen ontwikkelaarstenant wilt maken, kunt u zich registreren voor het Microsoft 365 Developer Program.

  • Een of meer gebruikers of groepen in de tenant om machtigingen te delegeren aan.

  • Een actief API Management-exemplaar. Als dat nodig is, maakt u een Azure API Management-exemplaar.

  • Een back-end OAuth 2.0-API die u namens de gebruiker of groep wilt openen.

Stap 1: Azure API Management Data Plane-service-principal inrichten

U moet de Azure API Management Data Plane-service-principal inrichten om gebruikers of groepen de benodigde gedelegeerde machtigingen te verlenen. Gebruik de volgende stappen om de service-principal in te richten met behulp van Azure PowerShell.

  1. Meld u aan bij Azure PowerShell.

  2. Als de AzureAD-module nog niet is geïnstalleerd, installeert u deze met de volgende opdracht:

    Install-Module -Name AzureAD -Scope CurrentUser -Repository PSGallery -Force
    
  3. Verbinding maken naar uw tenant met de volgende opdracht:

    Connect-AzureAD -TenantId "<YOUR_TENANT_ID>"
    
  4. Meld u aan met beheerdersaccountreferenties van uw tenant als u hierom wordt gevraagd.

  5. Richt de service-principal van Azure API Management Data Plane in met de volgende opdracht:

    New-AzureADServicePrincipal -AppId c8623e40-e6ab-4d2b-b123-2ca193542c65 -DisplayName "Azure API Management Data Plane"
    

Stap 2: Een Microsoft Entra-app-registratie maken

Maak een Microsoft Entra ID-toepassing voor gebruikersdelegering en geef deze de juiste machtigingen om de verbinding in API Management te lezen.

  1. Meld u aan bij Azure Portal met een account met voldoende machtigingen in de tenant.
  2. Zoek onder Azure Services naar Microsoft Entra-id.
  3. Selecteer in het linkermenu App-registraties en selecteer vervolgens + Nieuwe registratie.
  4. Voer op de pagina Een toepassing registreren de registratie-instellingen voor uw toepassing in:
    1. Voer in Naam een betekenisvolle naam in die wordt weergegeven aan gebruikers van de app, zoals UserPermissions.
    2. Selecteer in Ondersteunde accounttypen een optie die bij uw scenario past, bijvoorbeeld Alleen accounts in deze organisatiemap (één tenant).
    3. Stel de omleidings-URI in op het web en voer deze in https://www.postman-echo.com/get.
  5. Selecteer API-machtigingen in het linkermenu en selecteer vervolgens + Een machtiging toevoegen.
    1. Selecteer de API's die mijn organisatie gebruikt , typ het gegevensvlak van Azure API Management en selecteer deze.
    2. Selecteer Onder Machtigingen de optie Authorizations.Read en selecteer vervolgens Machtigingen toevoegen.
  6. Selecteer Overzicht in het linkermenu. Zoek op de pagina Overzicht de waarde van de toepassings-id (client) en noteer deze voor gebruik in een latere stap.
  7. Selecteer certificaten en geheimen in het linkermenu en selecteer vervolgens + Nieuw clientgeheim.
    1. Voer een beschrijving in.
    2. Selecteer een optie voor Verlopen.
    3. Selecteer Toevoegen.
    4. Kopieer de waarde van het clientgeheim voordat u de pagina verlaat. U hebt deze in een latere stap nog nodig.

Stap 3: een referentieprovider configureren in API Management

  1. Meld u aan bij de portal en ga naar uw API Management-exemplaar.
  2. Selecteer referentiebeheer in het linkermenu en selecteer vervolgens + Maken.
    Schermopname van het maken van een API-referentie in de portal.
  3. Voer op de pagina Referentieprovider maken de instellingen in voor de referentieprovider voor uw API. Voor dit scenario moet u in toekenningstype autorisatiecode selecteren. Zie Referentieproviders configureren in referentiebeheer voor meer informatie.
  4. Selecteer Maken.
  5. Wanneer u hierom wordt gevraagd, controleert u de omleidings-URL van OAuth die wordt weergegeven en selecteert u Ja om te bevestigen dat deze overeenkomt met de URL die u hebt ingevoerd in de app-registratie.

Stap 4: Een verbinding configureren

Nadat u een referentieprovider hebt gemaakt, kunt u een verbinding met de provider toevoegen. Voer op het tabblad Verbinding maken ion de stappen voor uw verbinding uit:

  1. Voer een Verbinding maken ionnaam in en selecteer Opslaan.
  2. Selecteer onder Stap 2: Meld u aan bij uw verbinding en selecteer de koppeling om u aan te melden bij de referentieprovider. Voer de stappen uit om toegang te autoriseren en terug te keren naar API Management.
  3. Selecteer + Toevoegen onder stap 3: bepaal wie toegang heeft tot deze verbinding (toegangsbeleid). Afhankelijk van uw delegatiescenario selecteert u Gebruikers of Groep.
  4. Maak in het venster Item selecteren selecties in de volgende volgorde:
    1. Zoek eerst een of meer gebruikers (of groepen) om het selectievakje toe te voegen en in te schakelen.
    2. Zoek vervolgens in de lijst die wordt weergegeven naar de app-registratie die u in een vorige sectie hebt gemaakt.
    3. Klik vervolgens op Selecteren.
  5. Selecteer Voltooien.

De nieuwe verbinding wordt weergegeven in de lijst met verbindingen en toont een status van Verbinding maken ed. Als u een andere verbinding wilt maken voor de referentieprovider, voert u de voorgaande stappen uit.

Tip

Gebruik de portal om op elk gewenst moment verbindingen met een referentieprovider toe te voegen, bij te werken of te verwijderen. Zie Meerdere verbindingen configureren voor meer informatie.

Stap 5: een Microsoft Entra ID-toegangstoken verkrijgen

Als u door de gebruiker gedelegeerde toegang tot de back-end-API wilt inschakelen, moet er tijdens runtime een toegangstoken worden opgegeven voor de gedelegeerde gebruiker of groep in het get-authorization-context beleid. Dit wordt meestal programmatisch gedaan in uw client-app met behulp van de Microsoft Authentication Library (MSAL). Deze sectie bevat handmatige stappen voor het maken van een toegangstoken voor testen.

  1. Plak de volgende URL in uw browser en vervang de waarden voor <tenant-id> en <client-id> door waarden uit de registratie van uw Microsoft Entra-app:

    https://login.microsoftonline.com/<tenant-id>/oauth2/authorize?client_id=<client-id>&response_type=code&redirect_uri=https://www.postman-echo.com/get&response_mode=query&resource=https://azure-api.net/authorization-manager&state=1234`
    
  2. Meld u aan wanneer u daarom wordt gevraagd. Kopieer in de hoofdtekst van het antwoord de waarde van de opgegeven code (bijvoorbeeld: "0.AXYAh2yl…").

  3. Verzend de volgende POST aanvraag naar het tokeneindpunt, waarbij u <tenant-id> uw tenant-id vervangt door de aangegeven header en de hoofdtekstparameters van uw app-registratie en de code die u in de vorige stap hebt gekopieerd.

    POST https://login.microsoftonline.com/<tenant-id>/oauth2/token HTTP/1.1
    

    Koptekst

    Content-Type: application/x-www-form-urlencoded

    Tekst

    grant_type: "authorization_code"
    client_id: <client-id>
    client_secret: <client-secret>
    redirect_uri: <redirect-url> 
    code: <code>   ## The code you copied in the previous step
    
  4. Kopieer in de hoofdtekst van het antwoord de waarde van access_token die is opgegeven (bijvoorbeeld: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjZqQmZ1...). In de volgende stap geeft u deze waarde door in de beleidsconfiguratie.

Stap 6: get-authorization-contextbeleid configureren voor back-end-API

Configureer het get-authorization-contextbeleid voor de back-end-API die u namens de gebruiker of groep wilt openen. Voor testdoeleinden kunt u het beleid configureren met behulp van het Microsoft Entra ID-toegangstoken voor de gebruiker die u in de vorige sectie hebt verkregen.

  1. Meld u aan bij de portal en ga naar uw API Management-exemplaar.

  2. Selecteer API's in het linkermenu en selecteer vervolgens uw OAuth 2.0-back-end-API.

  3. Selecteer Alle bewerkingen. Selecteer in de sectie Binnenkomende verwerking het pictogram (</>) (code-editor).

  4. Configureer het get-authorization-context beleid in de inbound sectie en stel deze in identity-type op jwt:

    <policies>
        <inbound>
            [...]
            <get-authorization-context provider-id="<credential-provider-id>" authorization-id="<connection-id>" context-variable-name="auth-context" identity-type="jwt" identity="<access-token>" ignore-error="false" />
            [...]
        </inbound> 
    </policies>
    

Vervang in de voorgaande beleidsdefinitie:

  • <credential-provider-id> en <connection-id> met de namen van de referentieprovider en de verbinding die u in een vorige stap hebt geconfigureerd.

  • <access-token> met het Microsoft Entra ID-toegangstoken dat u in de vorige stap hebt gegenereerd.

Stap 7: de API testen

  1. Selecteer op het tabblad Testen één bewerking die u hebt geconfigureerd.

  2. Selecteer Verzenden.

    Een geslaagd antwoord retourneert gebruikersgegevens van de back-end-API.