Utilizzo di un token OAuth per Platform Services

Il servizio token OAuth 2.0 fornito dai domini di Identity è un meccanismo che consente di utilizzare un token protetto per accedere agli endpoint REST di Oracle Cloud Platform Services (PaaS).

Nota

  • Per accedere a un servizio di piattaforma cloud integrato con i domini di Identity, è necessario disporre dell'URL del dominio di Identity. Se non si conosce l'URL del dominio di Identity, vedere Ricerca di un URL del dominio di Identity.

  • Nella procedura vengono utilizzati esempi cURL per ottenere un token di accesso dai domini di Identity, quindi accedere a un endpoint REST del servizio di piattaforma cloud con il token.

Un token di accesso OAuth ha un valore di scadenza di 86.400 secondi (24 ore). Per effettuare richieste API REST 24 ore dopo aver ottenuto un token di accesso, è necessario ottenere un nuovo token.

Prerequisiti

Prima di iniziare, ottenere le informazioni seguenti dal dominio di Identity.

  • URL dominio di Identity
  • ID client
  • Segreto client
  • URL audience principale
  • Ambito consentito
  1. Accedere al dashboard Servizi personali per il dominio di identità.

    Nota

    Per eseguire la procedura descritta in questa procedura, è necessario disporre del ruolo di amministratore del dominio di Identity o del ruolo di amministratore PaaS.
  2. Cercare la voce per il dominio di Identity nella lista di servizi, quindi selezionare Identity Cloud.

  3. Nella scheda Panoramica, individuare la sezione Istanze servizio, quindi copiare il valore visualizzato nel campo URL istanza servizio.

    Ad esempio: https://<domainURL>.identity.oraclecloud.com/ui/v1/adminconsole

    Dove <domainURL> è la parte del server REST dell'URL del dominio di Identity (che fa parte dell'URL dell'endpoint per la richiesta di un token di accesso).

  4. Selezionare Apri console servizio, espandere il cassetto di navigazione, quindi selezionare Applicazioni.

  5. Nel campo della ricerca immettere PSM, quindi selezionare l'icona di ricerca. Nei risultati, trovare la voce denominata PSM App for API OAuth support.

    Nota

    L'applicazione Platform Service Manager (PSMApp) non è disponibile per gli account Oracle Cloud creati prima della release 18.1.4.
  6. Selezionare il nome dell'applicazione denominata Applicazione PSM per il supporto API OAuth. Il nome ha il formato PSMApp-cacct-string-of-letters-and-numbers.

    Ad esempio:

    PSMApp-cacct-9z8x7c6v5b4n3m

    Si tratta dell'applicazione client PSM sicura del dominio di Identity, creata automaticamente per gli account Oracle Cloud (dopo la 18.1.4) e associata a Oracle Cloud Platform Service.

  7. Selezionare Configurazione. In Informazioni generali copiare il valore visualizzato nel campo ID client.

    Si tratta dell'ID client PSMApp. Ad esempio:

    PSMApp-cacct-9z8x7c6v5b4n3m_APPID

  8. Selezionare Mostra segreto, quindi copiare il valore.

    Questo è il segreto client PSMApp. Ad esempio:

    c53b437-1768-4cb6-911e-1e6eg2g3543

  9. Espandi risorse. Copiare il valore visualizzato nel campo Audience principale.

    Questo è l'URL dell'audience principale PSMApp. Ad esempio:

    https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com

  10. Nella sezione Ambiti consentiti, copiare il valore Ambito per l'autorizzazione 1PaaS.

    urn:opc:resource:consumer::all

Recupera un token di accesso OAuth

Con le informazioni raccolte, utilizzare l'endpoint API REST dei domini di Identity /oauth2/v1/token per ottenere un token.

   curl -k 
   -X POST -u "client-id:client-secret" 
   -d "grant_type=password&username=yourusername&password=yourpassword&scope=https://primary-audience-and-scope" "https://identity-cloud-service-instance-url/oauth2/v1/token"

Dove:

  • client-id è l'ID del client PSMApp

  • client-secret è il segreto client PSMApp

  • yourusername è il nome utente del servizio di piattaforma cloud con ruolo di amministratore

  • yourpassword è la password del nome utente

  • primary-audience-and-scope è una concatenazione dell'URL dell'audience principale PSMApp e dell'ambito dell'autorizzazione 1PaaS

  • identity-cloud-service-instance-url è la parte del server REST dell'URL del dominio di Identity

Ad esempio:

   curl -k 
-X POST -u "PSMApp-cacct-9z8x7c6v5b4n3m_APPID:c53b437-1768-4cb6-911e-1e6eg2g3543" 
-d "grant_type=password&username=yourusername&password=yourpassword&scope=https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.comurn:opc:resource:consumer::all" "https://<domainURL>.identity.oraclecloud.com/oauth2/v1/token"

Di seguito è riportato un esempio della risposta restituita.

{
    "access_token": "eyJ7NXQ...fMf46Q0yKopDxQ",
    "token_type": "Bearer",
    "expires_in": 86400
}
Nota

La stringa del token viene troncata nella risposta di esempio. Copiare l'intera stringa di token (tra virgolette) come mostrato nella risposta.

Utilizzare il token di accesso OAuth nelle richieste API REST di Cloud Platform Service

Dopo aver ottenuto un token di accesso OAuth 2.0, fornire il token in un'intestazione token bearer della richiesta REST del servizio di piattaforma cloud.

   curl -i 
   -X GET 
   -H "Authorization: Bearer token-string" "https://primary-audience/rest-endpoint-path"

Dove:

  • token-string è il token di accesso OAuth ottenuto

  • primary-audience è l'URL dell'audience principale PSMApp

  • rest-endpoint-path è il percorso relativo che definisce la risorsa REST del servizio di piattaforma cloud. Si noti che l'ID del dominio di Identity può essere utilizzato nel percorso.

Ad esempio, il seguente comando cURL recupera tutte le istanze di Oracle Java Cloud Service.
   curl -i -X GET 
   -H "Authorization: Bearer eyJ7NXQ...fMf46Q0yKopDxQ" "https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com/paas/api/v1.1/instancemgmt/idcs-9a888b7e6ebb44b4b65/services/jaas/instances"