Tipo di assegnazione asserzione
Utilizzare questo tipo di privilegio quando si desidera utilizzare una relazione di attendibilità esistente espressa come asserzione e senza un passo di approvazione diretta dell'utente nel server di autorizzazione OAuth.
Nel diagramma seguente 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 e credenziali client di terze parti.
-
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 un elenco di utenti.
| Funzione | Disponibile |
|---|---|
| Richiede autenticazione client | Sì |
| Richiede al client di conoscere le credenziali utente | N |
| Interazione utente finale basata sul browser Nota: il processo di generazione dell'asserzione può comportare l'interazione dell'utente. |
N |
| 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 sarà 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 autorizzazione di asserzione.
Esempio di flusso di autorizzazione tipo 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 passare attraverso il processo di autorizzazione stesso (autorizzazione delegata).
Il comando in questo esempio utilizza la struttura URL
https://<domainURL>/resource-path, in cui <domainURL> rappresenta l'URL del servizio identità e il percorso risorsa rappresenta l'API del servizio identità. Vedere Invia richieste per la struttura URL appropriata da utilizzare.-
Specificare Applicazione mobile come tipo di applicazione.
-
Selezionare Asserzione come tipo di privilegio.
Per ulteriori informazioni sul tipo di privilegio di asserzione e sul diagramma del 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
secure_saml_sp_sso_endpointnella 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 di Oracle Web Services Manager (lato client) intercetta l'applicazione client che effettua una chiamata API REST al server delle risorse (applicazioni Fusion) per ottenere un token di accesso.
-
Il server di autorizzazione OAuth autentica l'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.