Konfigurera autentiseringshanteraren – GitHub API
GÄLLER FÖR: Alla API Management-nivåer
I den här artikeln får du lära dig hur du skapar en hanterad anslutning i API Management och anropar ett GitHub-API som kräver en OAuth 2.0-token. Auktoriseringskodens beviljandetyp används i det här exemplet.
Du lär dig att:
- Registrera ett program i GitHub
- Konfigurera en provider för autentiseringsuppgifter i API Management
- Konfigurera en anslutning
- Skapa ett API i API Management och konfigurera en princip
- Testa ditt GitHub-API i API Management
Förutsättningar
- Ett GitHub-konto krävs.
- En API Management-instans som körs. Om du behöver det skapar du en Azure API Management-instans.
- Aktivera en systemtilldelad hanterad identitet för API Management i API Management-instansen.
Steg 1: Registrera ett program i GitHub
Skapa en GitHub OAuth-app för API:et och ge den lämpliga behörigheter för de begäranden som du vill anropa.
Logga in på GitHub.
Gå till Inställningar > Developer Inställningar > OAuth Apps i din kontoprofil. Välj Ny OAuth-app.
- Ange ett programnamn och webbadressen till startsidan för programmet. I det här exemplet kan du ange en platshållar-URL, till exempel
http://localhost
. - Du kan också lägga till en programbeskrivning.
- I URL för auktoriseringsåteranrop (omdirigerings-URL: en) anger du
https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>
och ersätter namnet på DEN API Management-instans där du konfigurerar providern för autentiseringsuppgifter.
- Ange ett programnamn och webbadressen till startsidan för programmet. I det här exemplet kan du ange en platshållar-URL, till exempel
Välj Registrera program.
På sidan Allmänt kopierar du klient-ID :t som du ska använda i steg 2.
Välj Generera en ny klienthemlighet. Kopiera hemligheten, som inte visas igen och som du ska använda i steg 2.
Steg 2: Konfigurera en provider för autentiseringsuppgifter i API Management
Logga in på portalen och gå till din API Management-instans.
På den vänstra menyn väljer du Autentiseringshanteraren>+ Skapa.
På sidan Skapa provider för autentiseringsuppgifter anger du följande inställningar:
Inställningar Värde Providernamn för autentiseringsuppgifter Ett valfritt namn, till exempel github-01 Identitetsprovider Välj GitHub Bevilja typ Välj auktoriseringskod Klient-ID Klistra in det värde som du kopierade tidigare från appregistreringen Client secret Klistra in det värde som du kopierade tidigare från appregistreringen Definitionsområde I det här exemplet anger du omfånget till Användare Välj Skapa.
När du uppmanas till det granskar du omdirigerings-URL:en för OAuth som visas och väljer Ja för att bekräfta att den matchar den URL som du angav i appregistreringen.
Steg 3: Konfigurera en anslutning
På fliken Anslut ion slutför du stegen för anslutningen till providern.
Kommentar
När du konfigurerar en anslutning konfigurerar API Management som standard en åtkomstprincip som möjliggör åtkomst av instansens systemtilldelade hanterade identitet. Den här åtkomsten räcker för det här exemplet. Du kan lägga till ytterligare åtkomstprinciper efter behov.
- Ange ett Anslut ionsnamn och välj sedan Spara.
- Under Steg 2: Logga in på din anslutning (för beviljandetyp för auktoriseringskod) väljer du länken för att logga in på autentiseringsprovidern. Slutför stegen där för att auktorisera åtkomst och återgå till API Management.
- Under Steg 3: Avgör vem som ska ha åtkomst till den här anslutningen (åtkomstprincip) visas den hanterade identitetsmedlemmen. Det är valfritt att lägga till andra medlemmar, beroende på ditt scenario.
- Välj Slutför.
Den nya anslutningen visas i listan över anslutningar och visar statusen Anslut ed. Om du vill skapa en annan anslutning för providern för autentiseringsuppgifter slutför du föregående steg.
Dricks
Använd portalen för att lägga till, uppdatera eller ta bort anslutningar till en autentiseringsprovider när som helst. Mer information finns i Konfigurera flera anslutningar.
Steg 4: Skapa ett API i API Management och konfigurera en princip
Logga in på portalen och gå till din API Management-instans.
På den vänstra menyn väljer du API:er > + Lägg till API.
Välj HTTP och ange följande inställningar. Välj sedan Skapa.
Inställning Värde Visningsnamn githubuser Url för webbtjänst https://api.github.com
API URL-suffix githubuser Navigera till det nyligen skapade API:et och välj Lägg till åtgärd. Ange följande inställningar och välj Spara.
Inställning Värde Visningsnamn getauthdata URL för GET /användare Följ stegen ovan för att lägga till ytterligare en åtgärd med följande inställningar.
Inställning Värde Visningsnamn getauthfollowers URL för GET /användare/följare Välj Alla åtgärder. I avsnittet Inkommande bearbetning väljer du ikonen (</>) (kodredigeraren).
Kopiera följande och klistra in i principredigeraren. Kontrollera att
provider-id
värdena ochauthorization-id
iget-authorization-context
principen motsvarar namnen på autentiseringsprovidern respektive anslutningen som du konfigurerade i föregående steg. Välj Spara.<policies> <inbound> <base /> <get-authorization-context provider-id="github-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" /> <set-header name="Authorization" exists-action="override"> <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value> </set-header> <set-header name="User-Agent" exists-action="override"> <value>API Management</value> </set-header> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies>
Den föregående principdefinitionen består av tre delar:
- Principen get-authorization-context hämtar en auktoriseringstoken genom att referera till providern för autentiseringsuppgifter och anslutningen som du skapade tidigare.
- Den första principen för set-header skapar ett HTTP-huvud med den hämtade auktoriseringstoken.
- Den andra principen för set-header skapar ett
User-Agent
huvud (GitHub API-krav).
Steg 5: Testa API:et
På fliken Test väljer du en åtgärd som du har konfigurerat.
Välj Skicka.
Ett lyckat svar returnerar användardata från GitHub-API:et.
Relaterat innehåll
- Läs mer om autentiserings- och auktoriseringsprinciper
- Läs mer om GitHubs REST API