Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
GÄLLER FÖR: Utvecklare | Grundläggande | Standard | Premie
API Management stöder nu inbyggd OAuth 2.0-programbaserad åtkomst till produkt-API:er med hjälp av flödet för klientautentiseringsuppgifter. Med den här funktionen kan API-chefer registrera Microsoft Entra ID-program, vilket effektiviserar säker API-åtkomst för utvecklare via OAuth 2.0-auktorisering.
Anmärkning
Programmen är för närvarande i begränsad förhandsversion. Fyll i formuläret om du vill registrera dig.
Med den här funktionen:
- API-chefer anger en produktegenskap för att aktivera programbaserad åtkomst.
- API-chefer registrerar klientprogram i Microsoft Entra-ID för att begränsa åtkomsten till specifika produkter.
- Utvecklare kan komma åt autentiseringsuppgifter för klientprogram med hjälp av API Management-utvecklarportalen.
- Utvecklare eller appar kan använda OAuth 2.0-klientuppgifter för att hämta tokens som de kan inkludera i API-förfrågningar.
- Token som visas i API-begäranden verifieras av API Management-gatewayen för att auktorisera åtkomst till produktens API:er.
Förutsättningar
En API Management-instans som distribueras på nivån Premium, Standard, Basic eller Developer . Om du behöver distribuera en instans läser du Skapa en API Management-tjänstinstans.
Minst en produkt i DIN API Management-instans, med minst ett API tilldelat till den.
- Produkten bör vara i tillståndet Publicerad så att den kan nås av utvecklare via utvecklarportalen.
- För testning kan du använda standardprodukten Starter och Echo-API :et som läggs till i den.
- Om du vill skapa en produkt kan du läsa Skapa och publicera en produkt.
Tillräcklig behörighet i din Microsoft Entra-klient för att tilldela rollen Programadministratör , vilket kräver minst rollen Privilegierad rolladministratör .
Du kan också lägga till en eller flera användare i din API Management-instans.
- Om du väljer att använda Azure PowerShell lokalt:
- Installera den senaste versionen av Az PowerShell-modulen.
- Anslut till ditt Azure-konto med hjälp av cmdleten Connect-AzAccount .
- Om du väljer att använda Azure Cloud Shell:
- Mer information finns i Översikt över Azure Cloud Shell .
Konfigurera hanterad identitet
Aktivera en systemtilldelad hanterad identitet för API Management i din API Management-instans.
Tilldela identiteten rollen programadministratör för RBAC i Microsoft Entra ID. Så här tilldelar du rollen:
- Logga in på portalen och gå till Microsoft Entra-ID.
- I den vänstra menyn väljer du Hantera>roller och administratörer.
- Välj Programadministratör.
- I den vänstra menyn väljer du Hantera>tilldelningar>+ Lägg till tilldelningar.
- På sidan Lägg till tilldelningar söker du efter API Management-instansens hanterade identitet efter namn (namnet på API Management-instansen). Välj den hanterade identiteten och välj sedan Lägg till.
Aktivera programbaserad åtkomst för produkten
Följ de här stegen för att aktivera programbaserad åtkomst för en produkt. En produkt måste ha den här inställningen aktiverad för att associeras med ett klientprogram i senare steg.
I följande exempel används Starter-produkten , men du kan välja alla publicerade produkter som har minst ett API tilldelat.
- Logga in på portalen på följande anpassade URL för programfunktionen: https://portal.azure.com/?feature.customPortal=false& Microsoft_Azure_ApiManagement=program
- Gå till din API Management-instans.
- I den vänstra menyn går du till API:er och väljer Produkter.
- Välj den produkt som du vill konfigurera, till exempel startprodukten .
- I den vänstra menyn går du till Produkt och väljer Egenskaper.
- I avsnittet Programbaserad åtkomst aktiverar du inställningen OAuth 2.0-token (säkrast).
- Du kan också aktivera inställningen Prenumerationsnyckel . Om du aktiverar både programbaserad åtkomst och ett prenumerationskrav kan API Management-gatewayen acceptera antingen en OAuth 2.0-token eller en prenumerationsnyckel för åtkomst till produktens API:er.
- Välj Spara.
Tips/Råd
Du kan också aktivera inställningen OAuth 2.0-token när du skapar en ny produkt.
Om du aktiverar programbaserad åtkomst skapas en backend-applikation för företaget i Microsoft Entra ID för att representera produkten. Program-ID:t för serverdelen visas på produktens egenskapssida.
Anmärkning
Det här program-ID:t anges som målgruppsvärde när du skapar ett klientprogram för att få åtkomst till produkten. Använd också det här värdet när du genererar en token för att anropa produkt-API:et.
(Valfritt) Granska produktprograminställningar i Microsoft Entra-ID
Du kan också granska inställningarna för det bakgrundsprogram för företag som skapats i Microsoft Entra ID för att företräda produkten.
Programmet heter med följande format: APIMProductApplication<product-name>. Om produktnamnet till exempel är Starter är programnamnet APIMProductApplicationStarter. Applikationen har en app-roll definierad.
Så här granskar du programinställningarna i Appregistreringar:
- Logga in på portalen och gå till Microsoft Entra ID>Hantera>appregistreringar.
- Välj Alla program.
- Sök efter och välj det program som skapats av API Management.
- I den vänstra menyn går du till Hantera och väljer Applikationsroller.
- Bekräfta programrollen som angetts av Azure API Management enligt följande skärmbild:
Registrera klientprogram för att få åtkomst till produkten
Registrera nu ett klientprogram som begränsar åtkomsten till en eller flera produkter.
- En produkt måste ha programbaserad åtkomst aktiverad för att associeras med ett klientprogram.
- Varje klientprogram har en enskild användare (ägare) i API Management-instansen. Endast ägaren kan komma åt produkt-API:er via programmet.
- En produkt kan associeras med fler än ett klientprogram.
Så här registrerar du ett klientprogram:
Logga in på portalen på följande anpassade URL för programfunktionen: https://portal.azure.com/?feature.customPortal=false& Microsoft_Azure_ApiManagement=program
Gå till din API Management-instans.
I den vänstra menyn går du till API:er och väljer Program>+ Registrera program.
På sidan Registrera ett program anger du följande programinställningar:
- Namn: Ange ett namn för programmet.
- Ägare: Välj programmets ägare i listrutan med användare i API Management-instansen.
- Bevilja åtkomst till valda produkter: Välj en eller flera produkter i API Management-instansen som tidigare har aktiverats för programbaserad åtkomst.
- Beskrivning: Ange en beskrivning om du vill.
Välj Registrera.
Programmet läggs till i listan över program på sidan Program . Välj programmet för att visa information, till exempel klient-ID. Du behöver det här ID:t för att generera en token för att anropa produkt-API:et.
Tips/Råd
- När du har skapat ett program kan du associera det med andra produkter. Välj programmet på sidan Program och välj sedan Detaljer>Produkter>+ Lägg till produkt.
- Du kan också skapa eller associera ett program genom att redigera en produkt från sidan Produkter .
Generera klienthemlighet
En klienthemlighet måste genereras för att klientprogrammet ska kunna använda OAuth 2.0-klientens autentiseringsuppgifter. Hemligheten är giltig i ett år men kan återskapas när som helst.
På sidan Program väljer du det program som du skapade.
På programmets översiktssida bredvid Klienthemlighet väljer du Lägg till hemlighet.
På sidan Ny klienthemlighet väljer du Generera.
En klienthemlighet genereras och visas i fältet Klienthemlighet . Se till att kopiera det hemliga värdet och lagra det på ett säkert sätt. Du kommer inte att kunna hämta den igen när du har stängt sidan.
Välj Stäng.
(Valfritt) Granska klientprograminställningar i Microsoft Entra-ID
Du kan också granska inställningarna för klientprogrammet i Microsoft Entra-ID.
Programmet namnges med följande format: APIMApplication<product-name>. Om produktnamnet till exempel är Starter liknar programnamnet APIMApplicationStarter.
Så här granskar du programinställningarna i Appregistreringar:
Logga in på portalen och gå till Microsoft Entra ID>Hantera>appregistreringar.
Välj Alla program.
Sök efter och välj det klientprogram som skapats av API Management.
I den vänstra menyn, under Hantera, välj API-behörigheter.
Bekräfta att programmet har behörighet att komma åt serverdelens produktprogram eller program.
Om klientprogrammet till exempel ger åtkomst till Starter-produkten har programmet Product.Starter.Alla behörigheter för att få åtkomst till programmet APIMProductApplicationStarter .
Hämta programinställningar i utvecklarportalen
Användare kan logga in på utvecklarportalen för att visa de klientprogram som de äger.
Logga in på utvecklarportalen (
https://<your-apim-instance-name>.developer.azure-api.net) med ett användarkonto som har angetts som ägare till ett klientprogram.I den översta navigeringsmenyn väljer du Program.
Program som användaren äger visas i listan.
Välj ett program för att visa dess information, till exempel klient-ID, klienthemlighet och omfång. Dessa värden behövs för att generera en token för att anropa produkt-API:erna.
Skapa token och använda med API-anrop
När du har aktiverat programbaserad åtkomst för en produkt och registrerat ett klientprogram kan en utvecklare eller app generera en token för att anropa produktens API:er. Token måste ingå i rubriken för Authorization en begäran.
En utvecklare eller app kan till exempel köra följande Azure PowerShell-skript för att anropa klientprogrammet för att generera en token och sedan använda token för att anropa ett produkt-API i API Management.
Försiktighet
Följande skript är endast exempel för testning. I produktion använder du en säker metod för att lagra och hämta klienthemligheten.
Anropa klientprogrammet för att generera token
# Replace placeholder values with your own values.
$clientId = "00001111-aaaa-2222-bbbb-3333cccc4444" # Client (application) ID of client application
$clientSecret = "******" # Retrieve secret of client application in developer portal
$scopeOfOtherApp = "api://55556666-ffff-7777-aaaa-8888bbbb9999/.default" # Value of Audience in product properties
$tenantId = "aaaabbbb-0000-cccc-1111-dddd2222eeee" # Directory (tenant) ID in Microsoft Entra ID
$body = @{
grant_type = "client_credentials"
client_id = $clientId
client_secret = $clientSecret
scope = $scopeOfOtherApp
}
$response = Invoke-RestMethod -Method Post -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -ContentType "application/x-www-form-urlencoded" -Body $body
$token = $response.access_token
Anropa produkt-API med hjälp av token
Token som genererades i föregående steg används för att anropa ett produkt-API. Token skickas i Authorization-huvudet för begäran. API Management-instansen verifierar token och auktoriserar åtkomst till API:et.
Följande skript visar ett exempel på anrop till echo-API:t.
# Gatewate endpoint to call. Update with URI of API operation you want to call.
$uri = "https://<gateway-hostname>/echo/resource?param1=sample"
$headers = @{
"Authorization" = "Bearer $token" # $token is the token generated in the previous script.
}
$body = @{
"hello" = "world"
} | ConvertTo-Json -Depth 5
$getresponse = Invoke-RestMethod -Method Post -Uri $uri -ContentType "application/x-www-form-urlencoded" -Headers $headers -Body $body
Write-Host "Response:"
$getresponse | ConvertTo-Json -Depth 5
Felsökning
Internt serverfel vid registrering av program i portalen
Om du inte kan lista program eller om du får ett internt serverfel när du registrerar program i portalen kontrollerar du följande:
- Rollen Programadministratör tilldelas till API Management-instansens hanterade identitet i Microsoft Entra-ID.
- Du är inloggad på portalen på följande anpassade URL för programfunktionen: https://portal.azure.com/?feature.customPortal=false& Microsoft_Azure_ApiManagement=program. Den här URL:en krävs för att få åtkomst till programfunktionen i API Management.