Tutorial: Implementazione della sicurezza dell' OAuth

Questo tutorial illustra come creare un provider nativo di OAuth utilizzando l'interfaccia utente di API Manager.

Informazioni su questo tutorial

La creazione di un provider nativo di OAuth consente di API Connect eseguire internamente le operazioni di autorizzazione relative all' OAuth, senza dover ricorrere a un'applicazione di terze parti per completarle. Quando si crea un provider nativo di OAuth, lo si applica a un'API, che viene quindi aggiornata per includere la configurazione di OAuth. Poi si pubblica l'API. Ogni volta che viene invocata l'API pubblicata, API Connect si assicura che l'applicazione chiamante sia autorizzata ad accedere alle risorse dell'API e quindi rende disponibile l'API.

Per implementare la sicurezza di tipo " OAuth " è necessario creare un provider e quindi aggiornare l'API in modo che lo utilizzi. In questa esercitazione completerete le seguenti lezioni:

  1. Creare un provider nativo per l' OAuth
  2. Aggiungere la protezion OAuth a a un'API
  3. Aggiungi un reindirizzamento OAuth URL all'applicazione di prova predefinita Sandbox
  4. Verifica l'implementazione della sicurezza dell' OAuth

Prima di iniziare

Questa esercitazione utilizza l'API predefinita di FindBranch. Per preparare l'ambiente per questa esercitazione, completare le seguenti operazioni:

  1. Aggiungi il DataPower® API Gateway servizio al catalogo Sandbox come spiegato nella sezione Creazione e configurazione dei cataloghi.

    Il catalogo Sandbox deve essere configurato per utilizzare almeno un gateway. Per questa esercitazione, è necessario usare lo stesso gateway utilizzato dall'API FindBranch.

  2. Importa l'API " FindBranch " e attivala seguendo le istruzioni fornite nel tutorial " Tutorial: Importazione di un'API ".

Creare un provider nativo per l' OAuth

Per creare un provider nativo di tipo " OAuth " in API Manager, configurare un registro utenti che utilizzi un sistema di autenticazione esterno URL per verificare gli utenti, quindi creare un provider per autenticare gli utenti che effettuano l'accesso tramite tale registro.

  1. Crea un registro utenti che possa essere utilizzato per l'autenticazione degli utenti con OAuth :
    1. Accedere a API Manager.
    2. Nella pagina iniziale, fare clic sul riquadro Gestione risorse.

      Home del gestore API

    3. Nella pagina Risorse, nel riquadro di sinistra, selezionare Registri utente.
    4. Nella sezione Registri utente, fare clic su Crea.
    5. Nella pagina Crea registro utente, selezionare il riquadro del registro utente Autenticazione URL. Nella pagina Crea registro utente, fare clic su Autenticazione URL Registro utente come tipo di registro utente selezionato.

      Crea registro utente

    6. Nella pagina Create authentication URL user registry, inserire le seguenti informazioni.
      1. Nei campi Titolo e Nome visualizzato, inserire AuthURL.

        Inserendo AuthURL nei campi Titolo e Nome visualizzato, si può facilmente determinare che questo registro è configurato con un'autenticazione URL.

      2. Nel campo URL inserire https://httpbin.org/basic-auth/user/password.
        Nota: il sito URL fornito qui è solo a scopo di test. L'endpoint httpbin.org offre un ambiente di prova in cui è possibile simulare un accesso con autenticazione di base, passando nell'intestazione di autorizzazione credenziali che corrispondono ai parametri di percorso {user} e {password}.
      3. Dal menu a tendina "Profilo cliente" (facoltativo) dell' TLS, selezionare No TLS profile.
      4. Fare clic su Salva.

        Crea registro utente URL di autenticazione

        Viene visualizzata la pagina Risorse con il nuovo registro incluso nell'elenco.

        pagina delle risorse

  2. Per creare un provider OAuth per l'autenticazione degli utenti che effettuano l'accesso tramite il registro AuthURL, eseguire le operazioni seguenti.
    1. Nell'elenco di navigazione della pagina Risorse, fare clic su "Fornitori di servizi di assistenza sanitaria" ( OAuth ).

      Provider OAuth

    2. Nella sezione " OAuth " (Fornitori ), fare clic su Aggiungi > Fornitore nativo " OAuth ".

      Aggiungi un provider di servizi " OAuth "

      Viene visualizzata la pagina "Crea provider nativo per l' OAuth ".

    3. Nella sezione relativa al provider Native OAuth, inserisci le seguenti informazioni.
      1. Nel campo Titolo, inserire MyNativeOAuthProvider.
      2. Nella sezione Tipo di gateway, selezionare il pulsante di opzione DataPower API Gateway (lo stesso gateway utilizzato da FindBranch API).
        Nota: ogni provider nativo di OAuth è associato a un solo tipo di gateway. Il tipo di gateway selezionato deve corrispondere al tipo di gateway utilizzato dall'API che verrà protetta con questo nuovo provider.
      3. Fare clic sul pulsante Avanti.

        Crea provider OAuth nativo

    4. Nella sezione Tipi di sovvenzione supportati, eseguire le seguenti operazioni.
      1. Selezionate la casella di controllo Codice di accesso e deselezionate tutti gli altri tipi di sovvenzione.

        Si noti che questo tutorial utilizza un unico tipo di sovvenzione per illustrare il funzionamento del provider nativo " OAuth ".

      2. Fare clic sul pulsante Avanti.

        Crea provider OAuth nativo

    5. Nella sezione Scopi, eseguire le seguenti operazioni.
      1. Fare clic su Eliminare icona per eliminare l'ambito predefinito.
      2. Fare clic su Aggiungi per definire l'ambito dell'API che sarà protetta dal provider nativo OAuth.
      3. Nel campo Nome, inserire details.
      4. Nel campo Descrizione, inserire Branch details
      5. Fare clic sul pulsante Avanti.

        Ambito di competenza di un fornitore di servizi di assistenza sanitaria ( OAuth )

    6. Nella sezione Endpoint di autorizzazione, eseguire le seguenti operazioni.
      1. Nella sezione Autenticazione, dall'elenco a discesa Autenticare gli utenti dell'applicazione utilizzando, selezionare AuthURL.
      2. Fare clic sul pulsante Avanti.

        OAuth URL

    7. Nella sezione "Riepilogo del provider" di Native OAuth, controlla le impostazioni e poi fai clic su "Fine".

      Una volta salvato il nuovo fornitore, le sue informazioni sono disponibili per la modifica e vengono visualizzate nella pagina Info.

    8. Nella pagina Info, eseguire le seguenti operazioni.
      1. Selezionare la casella di controllo Abilita intestazioni di risposta di debug.

        Selezionando questa casella di controllo, i dettagli degli errori vengono inseriti nelle intestazioni delle risposte quando si verificano dei problemi.

      2. Fare clic su Salva.

        Info sull'autorevolezza

      Il nuovo provider nativo per l' OAuth e è ora completo.

  3. Per configurare il registro AuthURL in modo che funzioni come registro utente API nel catalogo Sandbox, eseguire le seguenti operazioni.
    1. Nel riquadro di navigazione, fare clic sull'icona Gestione L'icona Gestisci.
    2. Nella pagina Gestione, fare clic sul riquadro del catalogo Sandbox.

      Gestisci cataloghi

      Viene visualizzata la pagina Prodotti.

    3. Nella barra dei menu, selezionare Impostazioni catalogo.

      impostazioni del catalogo

    4. Nel riquadro di sinistra, fare clic su Registri utenti API.
    5. Nella sezione Aggiungi registri utente API, fare clic su Modifica.

      Aggiungere il registro utenti API

    6. Nella pagina Modifica registri utenti API, eseguire le seguenti operazioni.
      1. Selezionare la casella AuthURL casella di controllo.
      2. Fare clic su Salva.

        Modifica del registro utenti API

        Il nuovo registro viene visualizzato nell'elenco dei registri utente API, come mostrato nell'immagine seguente.

        Registro utenti API

  4. Per configurare il provider nativo OAuth e renderlo disponibile nell'interfaccia di API Manager, eseguire le operazioni seguenti.
    1. Selezionare Gestione > Sandbox > Impostazioni catalogo.
    2. Nel riquadro di sinistra, fare clic su " OAuth providers ".
    3. Nella sezione "Fornitori" ( OAuth ), clicca su "Modifica ".

      Provider OAuth

    4. Nella pagina Modifica provider " OAuth ", eseguire la seguente operazione.
      1. Selezionare la MyNativeOAuthProvider casella di controllo.
      2. Fare clic su Salva.

        Modifica provider OAuth

      MyNativeOAuthProvider viene visualizzato nell'elenco dei provider configurati che è possibile utilizzare con API Manager.

Aggiungere la protezion OAuth a a un'API

Crea una definizione di sicurezza per l'API FindBranch e includi le informazioni relative al tuo provider nativo OAuth.

  1. Andare alla pagina iniziale di API Manager.

    Home del gestore API

  2. Nella pagina iniziale, fare clic sull'iconaSviluppare API e prodotti icona Develop.

    In alternativa, selezionare il riquadro Sviluppare API e prodotti.

  3. Nella pagina Sviluppo, in API, selezionare l'API che si desidera modificare. Ad esempio, FindBranch.

    sviluppare

  4. Nella pagina FindBranch Pagina Progettazione dell'API, eseguire le seguenti operazioni.
    1. Nel riquadro di navigazione sinistro, selezionare Schemi di sicurezza.

      Schemi di sicurezza

    2. Nella sezione Schemi di sicurezza, fare clic su Aggiungi.

      Schemi di sicurezza

    3. Nella finestra a comparsa Aggiungi schema, eseguire le seguenti operazioni.
      1. Nel campo Nome della definizione di sicurezza (chiave), inserire FindBranchOA.
      2. Dall'elenco a discesa Tipo, selezionare oauth2.
      3. Dall'elenco a discesa "Fornitore di servizi ( OAuth ) (Nome)" (facoltativo), selezionare " MyNativeOAuthProvider ".
      4. Dall'elenco a discesa Flusso, selezionare Access Code.
      5. Mantenere i valori precompilati nei campi Authorization Url e Token Url.
      6. Fare clic su Aggiungi.

        Aggiungi schema

        FindBranchOA è ora visualizzato sotto Schemi di sicurezza.

        FindBranchOA

      7. Nel riquadro di destra, nella sezione " FindBranchOA ", fare clic sul collegamento "Dettagli" e verificare che venga visualizzato l'ambito definito per il provider nativo " OAuth ".

        Dettagli

      8. Nell'angolo superiore destro della pagina, fare clic su Salva.
    4. Nel riquadro di navigazione sinistro, selezionare Sicurezza.

      Requisiti di sicurezza

    5. Nella sezione Requisiti di sicurezza, eseguire le seguenti operazioni.
      1. Fare clic su Aggiungi.
      2. Nella finestra a comparsa Aggiungi schema, selezionare i campi ClientID e FindBranchOA e fare clic su Aggiungi.

        Crea un requisito di sicurezza

        FindBranchOA è ora visualizzato nella sezione Requisiti di sicurezza.

      3. Accanto a FindBranchOA, nell'elenco a discesa Scopes, selezionare details.
      4. Nell'angolo in alto a destra, fare clic su Salva.

        Requisiti di sicurezza

Aggiunta di un reindirizzamento OAuth all'app di prova Sandbox

Per testare la funzionalità " OAuth " all'interno di API Manager, utilizzare l'applicazione "Sandbox Test App". L'app Sandbox Test è inclusa nel catalogo Sandbox e viene automaticamente abbonata al prodotto predefinito per ogni API creata nel catalogo, in modo da essere sempre disponibile per testare le API in API Manager.

Nota: prima di utilizzare l'applicazione per eseguire test su OAuth, è necessario aggiornarla in modo da includere un reindirizzamento da OAuth a URL.
  1. Andare alla pagina iniziale di API Manager.

    Home del gestore API

  2. Nella Home, nel riquadro di navigazione, fare clic su GestisciL'icona Gestisci.
  3. Nella pagina Gestione, fare clic sul riquadro del catalogo Sandbox.

    Gestisci catalogo

    Viene visualizzata la pagina Prodotti.

  4. Nella barra dei menu, fare clic su Applicazioni.
  5. Dall'elenco delle applicazioni, selezionare l'applicazione Sandbox Test App.

    Catalogo Sandbox

    Viene visualizzata la pagina Modifica applicazione.

  6. Nella pagina Modifica applicazione, eseguire le seguenti operazioni.
    1. Nella sezione "URL di reindirizzamento (facoltativo)" dell' OAuth, clicca sul pulsante "Aggiungi reindirizzamento" URL.
    2. Nel campo "URL di reindirizzamento (facoltativo) " di OAuth, inserisci https://example.com/redirect

      Sebbene questo campo sia facoltativo, è necessario inserire il valore relativo al flusso di autorizzazione nel proprio provider OAuth. Per testare l' OAuth all'interno di API Manager, l' URL può assumere qualsiasi valore formattato come un URL corretto, ma è necessario utilizzare lo stesso valore quando si specifica l' URL di reindirizzamento durante il test.

    3. Dopo aver inserito il valore nel campo "URL di reindirizzamento di OAuth " (facoltativo), clicca sull'icona "Completa" per salvare il valore.

      URL di reindirizzamento OAuth

    4. Fare clic su Salva per aggiornare la domanda.

      Modifica applicazione

Verifica l'implementazione della sicurezza dell' OAuth

Nota: a causa delle restrizioni relative alla condivisione delle risorse tra domini diversi ( CORS ), lo strumento di test degli assembly non può essere utilizzato con i browser Chrome o Safari sulla piattaforma macOS Catalina.

Per testare l'implementazione di OAuth, esegui un'API dall 'API Manager utilizzando l'app di test Sandbox.

Nota: prima di eseguire l'API,
  • È necessario pubblicare il prodotto per garantire che l'ultimo aggiornamento sia online e disponibile per i test.
  • È necessario ottenere un codice di autorizzazione e poi utilizzarlo per ottenere un token di accesso che consente di eseguire l'API.
  1. Andare alla pagina iniziale di API Manager.

    Home del gestore API

  2. Nella pagina iniziale, fare clic sull'iconaSviluppare API e prodotti icona Develop.

    In alternativa, selezionare il riquadro Sviluppare API e prodotti.

  3. Nella pagina Develop, selezionare l'API da testare. Ad esempio, FindBranch.
  4. Nella barra dei menu, selezionare Test.
  5. Nella pagina Test, eseguire le seguenti operazioni.
    1. Fare clic su Autorizzazioni + > ID cliente e FindBranchOA.

      Trova la filiale

    2. Nella finestra pop-up Autorizza, eseguire le seguenti operazioni.
      1. Selezionare la Oauth2 scheda.
      2. Nel campo ID cliente, inserire l'ID del cliente.
      3. Nel campo Segreto del cliente, inserire il segreto del cliente.
      4. In corrispondenza di Scopi, selezionare la casella di controllo Dettagli.
      5. Nel campo Nome utente, inserire user.
      6. Nel campo Password, inserire password.
      7. Fare clic sulla scheda Ottieni token.
      8. Nella finestra di dialogo a comparsa, inserire le credenziali di accesso a API Manager e quindi fare clic su Accedi o premere INVIO.

        Accesso a API Manager

        Il token di accesso viene generato e visualizzato nella finestra pop-up Authorize.

      9. Nella sezione Token di accesso, copiare il token.

        autorizzare

      10. Fare clic su Applica.
  6. Nella barra dei menu, selezionare Esplora risorse.
  7. Nella pagina Explorer, nel riquadro di sinistra, selezionare GET/details.
  8. Nel riquadro di destra, nella sezione GET : /details, eseguire le seguenti operazioni.
    1. Selezionare la scheda Prova.

      Ottieni i dettagli

    2. Nel campo Segreto API, inserire il segreto del cliente.
    3. Nella sezione Autorizzazione, eseguire le seguenti operazioni.
      1. Selezionare la casella di controllo Dettagli.
      2. Nel campo URI di reindirizzamento, inserire https://example.com/redirect.
      3. Per ottenere il codice di autorizzazione, scorrere verso il basso e fare clic su Autorizza.
      4. Nella finestra di dialogo a comparsa, nel campo ID utente immettere user, nel campo Password immettere password, quindi fare clic su Accedi o premere INVIO.

        Accesso al gestore API

        Una volta effettuata l'autenticazione, il browser viene reindirizzato a una finestra che visualizza la pagina del reindirizzamento URL. Il vostro codice di autorizzazione è incluso nella barra degli indirizzi come parametro del sito URL.

        Il codice di autorizzazione viene inserito nella barra degli indirizzi come parametro del sito URL, come mostrato nell'immagine seguente. Se URL è https://example.com/redirect?code=AAPl-yX6XVtdROcU4_WJhETLPLjLOJoJIpAYSFf7-4FxcNJ2XfXbMWpu8LnruLtcgmkdjNeDstRi0aO-d8bZX888iQYrtyhfrYSgADZgWy84nw, il codice di autorizzazione è AAPl-yX6XVtdROcU4_WJhETLPLjLOJoJIpAYSFf7-4FxcNJ2XfXbMWpu8LnruLtcgmkdjNeDstRi0aO-d8bZX888iQYrtyhfrYSgADZgWy84nw.


        Esempio di dominio
      5. Copia il codice di autorizzazione dalla pagina URL nella barra degli indirizzi della finestra, copiando tutto ciò che segue "code=".
        Codice di autorizzazione nel file URL
        Ad esempio:
        https://example.com/redirect?code=AALMmZCyKnhY1HpZGfpHkFH7wDdsNh9R2hgDfGwMVgdEzBOTlnq5LPZ3x6RFPa3V7CzsGacH8LLGlafnqa3ntbh921n5rJE7W0_jC1cAtzcZEg
      6. Nel campo Autorizza, inserire il codice di autorizzazione.
      7. Fare clic su Ottieni token per ottenere il token di accesso.

        Se l'autorizzazione ha esito positivo, il Get Token viene ora riempito con il codice di accesso.

        Suggerimento: se il token di accesso non appare e viene visualizzato un messaggio relativo alla scadenza del codice di autorizzazione, tornare al passaggio precedente per richiedere un nuovo codice di autorizzazione e utilizzarlo per generare il token di accesso.
      8. Fare clic su Invia.

        L'API FindBranch La risposta dell'API mostra il codice di stato200. È possibile visualizzare le informazioni sulle intestazioni della risposta e le informazioni sul corpo che contengono i dati di ciascuna filiale bancaria.

        È possibile scorrere verso il basso e visualizzare le informazioni nella sezione Risposta.

        Corpo della risposta

        Intestazioni risposta

Cosa hai imparato in questa esercitazione

In questa esercitazione, hai completato le seguenti attività:
  • È stato creato un registro utenti da utilizzare con un provider OAuth.
  • È stato creato un provider nativo per l' OAuth e e reso disponibile nel catalogo.
  • È stata aggiunta la protezione " OAuth " a un'API.
  • È stata aggiornata l'app di prova Sandbox (applicazione client) per fornire un reindirizzamento a OAuth a scopo di test.
  • Ho verificato la sicurezza dell' OAuth : ho ottenuto un codice di autorizzazione, l'ho scambiato con un token di accesso e ho richiamato l'API protetta.