Condividi tramite


Configurare il gestore delle credenziali - API GitHub

SI APPLICA A: Tutti i livelli di Gestione API

Questo articolo illustra come creare una connessione gestita in Gestione API e chiamare un'API GitHub che richiede un token OAuth 2.0. In questo esempio viene usato il tipo di concessione del codice di autorizzazione.

Scopri come:

  • Registrare un'applicazione in GitHub
  • Configurare un provider di credenziali in Gestione API
  • Configurare una connessione
  • Creare un'API in Gestione API e configurare un criterio
  • Testa l'API di GitHub in API Management

Prerequisiti

Passaggio 1: Registrare un'applicazione in GitHub

Creare un'app OAuth GitHub per l'API e assegnargli le autorizzazioni appropriate per le richieste che si desidera chiamare.

  1. Accedere a GitHub.

  2. Nel profilo dell'account passare a Impostazioni dello sviluppatore > App OAuth.> Selezionare Nuova app OAuth.

    Screenshot della registrazione di una nuova applicazione OAuth in GitHub.

    1. Immettere il nome dell'applicazione e l'URL della home page per l'applicazione. Per questo esempio, è possibile specificare un URL segnaposto, ad esempio http://localhost.
    2. Facoltativamente, aggiungere una descrizione dell'applicazione.
    3. In URL di callback di autorizzazione (URL di reindirizzamento) immettere https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>, sostituendo il nome dell'istanza di Gestione API in cui si configura il provider di credenziali.
    4. Facoltativamente, selezionare Abilita flusso del dispositivo (non obbligatorio per questo esempio).
  3. Selezionare Registra applicazione.

  4. Nella pagina Generale copiare l'ID client usato nel passaggio 2.

  5. Selezionare Genera nuovo segreto del client. Copiare il segreto, che non viene visualizzato di nuovo. Configurare il segreto nel passaggio 2.

    Screenshot che mostra come ottenere l'ID client e il segreto client per l'applicazione in GitHub.

Passaggio 2: Configurare un provider di credenziali in Gestione API

  1. Accedere al portale di Azure e passare all'istanza di Gestione API.

  2. Nel menu a sinistra selezionare API>Gestione credenziali>+ Crea.

    Screenshot della creazione di credenziali di Gestione API nel portale di Azure.

  3. In Crea provider di credenziali immettere le impostazioni seguenti:

    Settings Value
    Nome provider credenziali Nome preferito, ad esempio github-01
    Provider di identità Selezionare GitHub
    Tipo di concessione Selezionare Codice di autorizzazione
    Client ID Incollare il valore copiato in precedenza dalla registrazione dell'app
    Segreto del cliente Incollare il valore copiato in precedenza dalla registrazione dell'app
    Scope Per questo esempio, impostare l'ambito su Utente
  4. Fare clic su Crea.

  5. Quando richiesto, esaminare l'URL di reindirizzamento OAuth visualizzato e selezionare per verificare che corrisponda all'URL immesso nella registrazione dell'app GitHub.

Passaggio 3: Configurare una connessione

Nella scheda Connessione completare i passaggi per la connessione al provider.

Annotazioni

Quando si configura una connessione, Gestione API configura per impostazione predefinita un criterio di accesso che consente l'accesso dall'identità gestita assegnata dai sistemi dell'istanza. Questo accesso è sufficiente per questo esempio. È possibile aggiungere altri criteri di accesso in base alle esigenze.

  1. Immettere un nome di connessione e quindi selezionare Salva.
  2. In Passaggio 2: Accedere alla connessione (per il tipo di concessione del codice di autorizzazione), selezionare il pulsante Login (Accedi ). Completare i passaggi con il provider di identità per autorizzare l'accesso e tornare a Gestione API.
  3. In Passaggio 3: Determinare chi avrà accesso a questa connessione (criteri di accesso) viene elencato il membro dell'identità gestita. L'aggiunta di altri membri è facoltativa, a seconda dello scenario.
  4. Selezionare Completa.

La nuova connessione viene visualizzata nell'elenco delle connessioni e mostra lo stato Connesso. Se si vuole creare un'altra connessione per il provider di credenziali, completare i passaggi precedenti.

Suggerimento

Usare il portale di Azure per aggiungere, aggiornare o eliminare connessioni a un provider di credenziali in qualsiasi momento. Per altre informazioni, vedere Configurare più connessioni.

Passaggio 4: Creare un'API in Gestione API e configurare un criterio

  1. Accedere al portale di Azure e passare all'istanza di Gestione API.

  2. Nel menu a sinistra selezionare API>API>+ Aggiungi API.

  3. Selezionare HTTP e immettere le impostazioni seguenti, quindi selezionare Crea.

    Impostazione Value
    Nome visualizzato githubuser
    URL del servizio Web https://api.github.com
    Suffisso URL API githubuser
  4. Passare alla nuova API e selezionare Aggiungi operazione. Immettere le impostazioni seguenti e selezionare Salva.

    Impostazione Value
    Nome visualizzato getauthdata
    URL per GET /user

    Screenshot dell'aggiunta di un'operazione "getauthdata" all'API nel portale.

  5. Seguire i passaggi precedenti per aggiungere un'altra operazione con le impostazioni seguenti.

    Impostazione Value
    Nome visualizzato getauthfollowers
    URL per GET /user/follower
  6. Selezionare Tutte le operazioni. Nella sezione Elaborazione in ingresso selezionare l'icona (</>) (editor di codice).

  7. Copiare e incollare il codice seguente nell'editor dei criteri. Assicurarsi che i valori provider-id e authorization-id nella politica get-authorization-context corrispondano, rispettivamente, ai nomi del provider di credenziali e della connessione configurati nei passaggi precedenti. Seleziona Salva.

    <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>
    

La definizione di criteri precedente è costituita da tre parti:

  • Il criterio get-authorization-context recupera un token di autorizzazione facendo riferimento al provider di credenziali e alla connessione creata in precedenza.
  • Il primo criterio set-header crea un'intestazione HTTP con il token di autorizzazione recuperato.
  • Il secondo criterio set-header crea un'intestazione User-Agent (requisito dell'API GitHub).

Passaggio 5: Testare l'API

  1. Nella scheda Test selezionare un'operazione configurata.

  2. Seleziona Invia.

    Screenshot del test dell'API eseguito con successo nel portale.

    Una risposta con esito positivo restituisce i dati utente dall'API GitHub.