Nota

Usa ID Entra Microsoft per proteggere il gateway API OCI utilizzando OAuth e OpenID Connect

Introduzione

Il gateway API di Oracle Cloud Infrastructure (OCI) è un servizio completamente gestito serverless in OCI che può essere utilizzato per proteggere endpoint API e applicazioni Web. Fornisce molte funzionalità di sicurezza come la limitazione di frequenza, l'applicazione delle autorizzazioni, l'instradamento dinamico, l'applicazione SSL e così via. Abbiamo visto molte richieste provenienti dai nostri clienti che chiedevano come utilizzare i token Microsoft Entra ID OAuth per proteggere le API in esecuzione dietro OCI API Gateway o come utilizzare i token Microsoft Entra ID per l'autenticazione contro OCI API Gateway. Per ulteriori informazioni sull'autenticazione del gateway API OCI, vedere Convalida dei token per aggiungere l'autenticazione e l'autorizzazione alle distribuzioni API.

Obiettivi

Prerequisiti

Task 1: configurare l'ID Microsoft Entra come provider di identità OAuth (IdP)

Per quanto riguarda l'ID di Microsoft Entra, è necessario configurare due applicazioni client in Microsoft Entra ID: una che verrà utilizzata per l'autenticazione a Microsoft Entra ID, un'altra applicazione client verrà utilizzato per esporre un'API su Microsoft Entra ID e recupereremo un token per questa API esposta utilizzando l'ID client, segreto della prima app tramite Postman. Esamineremo questo token e utilizzeremo l'audience (aud) e i campi dell'emittente da importare nella configurazione del gateway API OCI.

Per creare e configurare le due applicazioni client in Microsoft Entra ID, attenersi alla procedura riportata di seguito.

  1. Per creare la prima applicazione, aprire il portale ID Microsoft Entra, fare clic su Registrazioni applicazioni e su Nuova registrazione per registrare una nuova applicazione.

  2. Immettere le informazioni riportate di seguito e fare clic su Registrati.

    • Nome: immettere il nome dell'applicazione.
    • Tipi di account supportati: selezionare Solo account in questa directory organizzativa (solo directory predefinita - tenant singolo).

    Immagine 1

  3. Fare clic su Esponi un'interfaccia API per esporla alle applicazioni client aggiungendo l'URI ID applicazione e fare clic su Aggiungi un ambito per aggiungere l'ambito. Per questa esercitazione, abbiamo fornito i valori di test come mostrato nelle seguenti immagini per esporre un'API e aggiungere un ambito.

    Registrando l'API Web ed esponendola attraverso gli ambiti, assegnando un ruolo applicazione, è possibile immettere l'accesso basato sulle autorizzazioni alle relative risorse agli utenti autorizzati e alle applicazioni client che accedono all'API.

    Nota: tenere presente l'URI ID applicazione, che verrà utilizzato in un secondo momento durante l'acquisizione di un token dall'ID Microsoft Entra.

    Immagine 2

    Immagine 3

  4. Fare clic su Ruoli applicazione per aggiungere un ruolo applicazione, ovvero per la prima applicazione.

    Immagine 4

  5. Per creare la seconda applicazione, aprire il portale ID Microsoft Entra, fare clic su Registrazioni applicazioni e su Nuova registrazione per registrare una nuova applicazione.

  6. Immettere le informazioni riportate di seguito e fare clic su Registrati.

    • Nome: immettere il nome dell'applicazione.
    • Tipi di account supportati: selezionare Solo account in questa directory organizzativa (solo directory predefinita - tenant singolo).

    Immagine 6

  7. Prendere nota dell'ID applicazione (client), poiché verrà utilizzato come credenziale nell'API di generazione token per ottenere un token per la prima applicazione client esposta come API.

    Immagine 5

  8. Fare clic su Certificati e segreti, Nuovo segreto client e immettere le informazioni riportate di seguito, quindi fare clic su Aggiungi.

    • Descrizione: immettere una breve descrizione del segreto.
    • Scadenza: selezionare la scadenza. Per impostazione predefinita, la scadenza del segreto è impostata su sei mesi.

    Immagine 7

    Nota: prendere nota del segreto copiando il campo del valore.

    Il segreto andrà in coppia con l'ID applicazione (client) dall'alto.

    Immagine 8

  9. Fare clic su Autorizzazioni API e su Aggiungere un'autorizzazione per Api_App. Nella sezione Seleziona un'interfaccia API, selezionare API utilizzate dalla mia organizzazione e selezionare l'interfaccia API esposta durante la configurazione della prima applicazione.

    Immagine 9

    Immagine 10

  10. Selezionare Autorizzazione applicazione e l'autorizzazione esposta, quindi fare clic su Aggiungi autorizzazioni.

    Immagine 11

    Immagine 12

  11. Fare clic su Panoramica, Endpoint e copiare l'URL dell'endpoint del token OAuth 2.0 (v1), che verrà utilizzato per l'emissione dei token JWT.

    Immagine 13

  12. In Endpoint verrà recuperato l'URL dell'endpoint OpenID ben noto che contiene l'URI JWKS remoto.

    Immagine 14

La parte ID Microsoft Entra è terminata e ora passiamo alla configurazione del gateway API OCI. Tuttavia, prima di configurare il gateway API in OCI, raccoglieremo i dettagli necessari da JWT e da openid-configuration da Microsoft Entra ID utilizzando Postman. Dovremo raccogliere i seguenti dettagli:

Recupera un token di accesso da Microsoft Entra ID utilizzando Postman. Il valore dell'ambito deve corrispondere all'URI ID applicazione creato nella sezione Esporre un'interfaccia API del file Api_App e aggiungere /.default alla fine come mostrato nell'immagine riportata di seguito.

Utilizzare Postman per recuperare il token JWT dall'ID di Microsoft Entra. Immettere l'URL dell'API del token https://login.microsoftonline.com/{tenant-id}/oauth2/token, sostituendo {tenant-id} con l'ID tenant di Azure. Inviare una richiesta e copiare il valore access_token.

Immagine 15

Ora, possiamo decodificare il token JWT per acquisire alcuni valori come l'emittente consentito JWT e l'audience consentito JWT.

Immagine 16

Utilizzeremo il token Web JSON (JWT) emesso da Microsoft Entra ID per la risposta stock configurata in OCI API Gateway.

Task 2: configurare un gateway API OCI

  1. Andare al gateway API OCI e nella sezione Autenticazione selezionare Autenticazione singola e immettere le informazioni riportate di seguito.

    • Tipo di autenticazione: OAuth 2.0/ OpenID Connect.
    • Posizione del token: Header.
    • Nome intestazione token JWT: Authorization.
    • Schema di autenticazione: Bearer.

    Immagine 17

  2. Nella sezione Convalida JWT aggiuntiva definire i problemi e i audience consentiti. Poiché è stata utilizzata l'API del token v1, è necessario impostare gli emittenti consentiti su https://sts.windows.net/{tenant-id}/. Sostituire {tenant-id} con l'ID tenant Azure. Il campo Audience consentite deve contenere il valore della richiesta aud ottenuto nel task 1.

    Immagine 18

  3. Nella sezione Tipo di convalida, immettere l'URI JWKS ottenuto dall'endpoint OpenID noto con ID Microsoft Entra.

    Immagine 19

  4. Per creare un instradamento, immettere le informazioni riportate di seguito e fare clic su Successivo.

    • Percorso: definire un percorso.
    • Metodi: selezionare un metodo.
    • Selezionare Aggiungi backend singolo.
    • Tipo di backend: selezionare Risposta stock.
    • Codice stato: immettere il codice di stato.
    • Corpo: definire un corpo semplice.

    Nota: per semplicità viene visualizzata una risposta stock come tipo di backend per il gateway API. In genere si tratta di un'API protetta tramite gateway API, tuttavia la configurazione per l'autenticazione OIDC di Microsoft Entra ID è simile.

    Immagine 20

  5. Nella sezione Rivedi, rivedere la distribuzione e fare clic su Crea. Attendere che lo stato della distribuzione sia Active e copiare l'URL dell'endpoint.

    Immagine 21

Usare Postman per eseguire il test dell'endpoint API protetto. Immettere l'endpoint e suffisso con il percorso di instradamento. Aggiungere l'intestazione Autorizzazione, utilizzare lo schema Bearer e incollare il token JWT ottenuto dall'ID di Microsoft Entra.

Immagine 22

La distribuzione del gateway API OCI è ora protetta con l'ID Entra Microsoft.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.