Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
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
- Integra il gateway API OCI e l'ID Entra Microsoft utilizzando OAuth e OpenID Connect (OIDC). Vedremo come possiamo utilizzare il token ID Microsoft Entra per eseguire l'autenticazione con OCI API Gateway in modo sicuro.
Prerequisiti
-
Accesso alle tenancy ID OCI e Microsoft Entra.
-
Un token Web JSON (JWT) da Microsoft Entra ID, questo JWT può essere recuperato utilizzando Postman, curl o qualsiasi altro client API.
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.
-
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.
-
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).
-
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.
-
Fare clic su Ruoli applicazione per aggiungere un ruolo applicazione, ovvero per la prima applicazione.
-
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.
-
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).
-
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.
-
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.
Nota: prendere nota del segreto copiando il campo del valore.
Il segreto andrà in coppia con l'ID applicazione (client) dall'alto.
-
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. -
Selezionare Autorizzazione applicazione e l'autorizzazione esposta, quindi fare clic su Aggiungi autorizzazioni.
-
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.
-
In Endpoint verrà recuperato l'URL dell'endpoint OpenID ben noto che contiene l'URI JWKS remoto.
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:
- Emittente JWT: può essere ottenuto dal campo token -
iss
nel token. - Audience consentite JWT: viene ottenuto anche dal campo token -
aud
nel token. - URI JWKS remoto: è disponibile nel documento Metadati OpenID Connect. Questo è l'URI JWKS remoto:
https://login.microsoftonline.com/{tenant-id}/discovery/v2.0/keys
.
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
.
Ora, possiamo decodificare il token JWT per acquisire alcuni valori come l'emittente consentito JWT e l'audience consentito JWT.
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
-
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
.
- Tipo di autenticazione:
-
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 richiestaaud
ottenuto nel task 1. -
Nella sezione Tipo di convalida, immettere l'URI JWKS ottenuto dall'endpoint OpenID noto con ID Microsoft Entra.
-
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.
-
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.
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.
La distribuzione del gateway API OCI è ora protetta con l'ID Entra Microsoft.
Collegamenti correlati
Conferme
- Autore - Aqib Javid Bhat (ingegnere senior del cloud)
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.
Use Microsoft Entra ID to Secure OCI API Gateway Using OAuth and OpenID Connect
F94680-01
March 2024