Tipo di concessione credenziali password proprietario risorsa
Utilizzare questo tipo di privilegio quando il proprietario della risorsa ha una relazione di trust con il client, ad esempio un sistema operativo per computer o un'applicazione con privilegi elevati, poiché il client deve eliminare la password dopo averla utilizzata per ottenere il token di accesso.
Nel diagramma riportato di seguito viene visualizzato il flusso Tipo di concessione credenziali password proprietario risorsa.

In questo flusso OAuth:
-
L'utente fa clic su un collegamento nell'applicazione client che richiede l'accesso alle risorse protette.
-
L'applicazione client richiede il nome utente e la password del proprietario della risorsa.
-
L'utente si collega con il proprio nome utente e la propria password.
-
L'applicazione client scambia tali credenziali per un token di accesso, e spesso per un token di aggiornamento, dal server di autorizzazione.
-
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 | Disponibile |
---|---|
Richiede l'autenticazione del client | No |
Richiede al client di conoscere le credenziali utente | Sì |
Interazione con l'utente finale basata sul browser | No |
Può utilizzare un provider di identità esterno per l'autenticazione | No |
Il token di aggiornamento è consentito | Sì |
Il token di accesso si trova nel contesto dell'utente finale | Sì |
Vedere un esempio di esempio di flusso di autorizzazione del tipo di concessione delle credenziali password del proprietario della risorsa.
Esempio di flusso autorizzazione tipo di concessione credenziali password proprietario risorsa
In questo esempio di flusso di autorizzazione viene descritto come ottenere un token di accesso utilizzando le credenziali (utente) del proprietario della risorsa.
Quando si crea un'applicazione utilizzando il tipo di privilegio Proprietario risorsa nella console del dominio di Identity:
-
Specificare Applicazione sicura come tipo di applicazione.
-
Selezionare Proprietario risorsa come tipo di privilegio.
-
Specificare l'URI di reindirizzamento, dove vengono inviate le risposte alle richieste di autenticazione.
Per ulteriori informazioni sul tipo di privilegio Credenziali password proprietario risorsa e su un diagramma di flusso di autorizzazione, vedere Tipo di autorizzazione credenziali password proprietario risorsa.
Flusso autorizzazione
-
Un utente fa clic su un collegamento nell'applicazione client del server Web, richiedendo l'accesso a risorse protette da un'applicazione server Web di terze parti.
-
L'applicazione client raccoglie il nome utente e la password dell'utente e richiede un token di accesso dal server di autorizzazione OAuth (AS).
L'URL della richiesta contiene parametri di query che indicano il tipo di accesso richiesto:
Richiesta di esempio mediante l'intestazione autorizzazione
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'
-
Il server di autorizzazione OAuth restituisce il token di accesso. Il token di accesso contiene tutti gli ambiti applicabili in base ai privilegi rappresentati dai ruoli applicazione del dominio di Identity concessi all'applicazione client richiedente e all'utente specificato dalla richiesta del client (se presente).
Nota
Se è stata effettuata una richiesta per un ambito non valido, viene restituito un errore al posto del token di accesso. -
Il sito richiedente utilizza il token di accesso in una chiamata API per ottenere dati protetti.