Tipo di concessione dell'asserzione
Utilizzare questo tipo di privilegio quando si desidera utilizzare una relazione attendibile esistente espressa come asserzione e senza un passo di approvazione utente diretto nel server di autorizzazione OAuth.
Nel diagramma riportato di seguito viene visualizzato il flusso Tipo di assegnazione asserzione.

In questo flusso OAuth:
-
Un utente tenta di accedere a un'applicazione client, inviando un'asserzione utente generata.Nota
Il processo di acquisizione dell'asserzione non rientra nell'ambito di questa spiegazione -
L'applicazione client richiede un token di accesso e spesso un token di aggiornamento fornendo un'asserzione utente o un'asserzione utente di terze parti e le credenziali client.
-
Il server di autorizzazione restituisce il token di accesso all'applicazione client.
-
L'applicazione client utilizza il token di accesso in una chiamata API per ottenere dati protetti, ad esempio una lista di utenti.
Funzione | Disponibili |
---|---|
Richiede l'autenticazione del client | Sì |
Richiede al client di conoscere le credenziali utente | No |
Interazione con l'utente finale basata sul browser Nota: il processo di generazione dell'asserzione può comportare l'interazione dell'utente. |
No |
Può utilizzare un provider di identità esterno per l'autenticazione | Sì |
Il token di aggiornamento è consentito | Sì |
Il token di accesso si trova nel contesto dell'utente finale Un token di accesso si troverà nel contesto dell'oggetto dell'asserzione, che può essere un utente finale, un servizio o il client stesso. |
Forse |
Vedere un esempio di flusso di autorizzazione del tipo di assegnazione.
Esempio di flusso autorizzazione tipo di concessione asserzione
In questo flusso di esempio, Example.com ha eseguito la sottoscrizione a diverse applicazioni PaaS e SaaS di Oracle Cloud. Gli utenti Example.com desiderano poter accedere alle proprietà di Oracle Cloud senza dover eseguire autonomamente il processo di autorizzazione (autorizzazione delegata).
Il comando in questo esempio utilizza la struttura URL
https://<domainURL>/resource-path
, dove <domainURL>
rappresenta l'URL del servizio Identity e il percorso della risorsa rappresenta l'API del servizio Identity. Per la struttura URL appropriata da utilizzare, vedere Invia richieste.-
Specificare Applicazione mobile come tipo di applicazione.
-
Selezionare Asserzione come tipo di privilegio.
Per ulteriori informazioni sul tipo di privilegio di asserzione e su un diagramma di flusso di autorizzazione, vedere Tipo di privilegio di asserzione.
Flusso autorizzazione
-
Un utente tenta di accedere a un'applicazione client, ad esempio JCS.
L'URL contiene parametri di query che indicano il tipo di accesso richiesto. L'asserzione SAML2 è codificata in Base64 e il valore del destinatario nell'asserzione SAML deve essere uno dei seguenti:
- L'emittente nel campo Emittente delle impostazioni OAuth nell'interfaccia utente.
- Oppure,
https://<domainURL>/
. - In alternativa, il valore di
secure_saml_sp_sso_endpoint
nella risposta di ricerca automatica.
curl -i -H 'Authorization: Basic <base64Encoded clientid:secret>' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&scope=<scope value>'
Richiesta di esempio che utilizza l'intestazione di autorizzazione che include il token di aggiornamento nella richiesta
curl -i -H 'Authorization: Basic <base64Encoded clientid:secret>' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&scope=<Resource Server Scope>%20offline_access'
Richiesta di esempio mediante un'asserzione client JWT
curl -i -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<scope value>'
Richiesta di esempio che utilizza un'asserzione client JWT che include il token di aggiornamento nella richiesta
curl -i -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<Resource Server Scope>%20offline_access'
Richiesta di esempio con mTLS
Per informazioni su come ottenere
secureDomainURL
, vedere Tipi di privilegio di accesso.curl -v \ --cert cert.crt \ --key key.key \ --cacert ca.crt \ --location '<secureDomainURL>/oauth2/v1/token' \ --header 'Authorization: Basic <base64Encoded clientid:secret>' --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=<client-id>' \ --data-urlencode 'scope=urn:opc:idm:_myscopes_'
-
Un agente Oracle Web Services Manager (lato client) intercetta l'applicazione client effettuando una chiamata API REST al server delle risorse (applicazioni Fusion) per ottenere un token di accesso.
-
Il server di autorizzazione OAuth esegue l'autenticazione dell'applicazione client in base all'intestazione di autorizzazione o all'asserzione inviata e restituisce un token di accesso contenente tutti gli ambiti applicabili in base ai privilegi rappresentati dai ruoli applicazione concessi all'applicazione client richiedente.
-
L'utente può accedere a un'applicazione OPC da un'altra applicazione OPC.