Token di accesso

Le transazioni OAuth riuscite richiedono che il server di autorizzazione del dominio di Identity IAM emetta token di accesso da utilizzare per l'autenticazione di una chiamata API. Un token di accesso rappresenta un'autorizzazione rilasciata all'applicazione client contenente le credenziali utilizzate per accedere alle risorse OAuth protette.

Il token di accesso fornisce una sessione (con ambito e scadenza) che l'applicazione client può utilizzare per eseguire task nell'API REST dei domini di Identity. Il token di accesso può essere ottenuto utilizzando la console del dominio di Identity o a livello di programmazione (eseguendo una chiamata API REST utilizzando l'ID client e il segreto dell'applicazione). Le applicazioni possono richiedere un token di accesso per accedere agli endpoint protetti in modi diversi, a seconda del tipo di privilegio specificato nell'applicazione. Un privilegio è una credenziale che rappresenta l'autorizzazione del proprietario della risorsa ad accedere a una risorsa protetta. Vedere Tipi di autorizzazione di accesso.

Nome Valore
tok_type* Identifica il tipo di token: AT
iss Il nome principale che ha emesso il token: https://<domainURL>
sub Identifica l'entità (utente/cliente) che richiede l'accesso. L'identificativo dell'oggetto è univoco a livello locale e deve essere utilizzato dal client. Nel caso dei token IDPropagation, questo contiene l'ID utente dell'utente. In altri casi, contiene il clientID.
sub_mappingattr* Attributo utilizzato per trovare il valore sub nell'area di memorizzazione degli ID. Questo è il mapping attr dalle impostazioni SSO.
sub_type

Il token di accesso ai domini di Identity contiene la richiesta sub_type che indica il tipo di oggetto (la richiesta sub) trasmesso dal token. Se il token viene emesso esclusivamente per conto del cliente, il valore del reclamo è client. In caso contrario, se il token sta propagando un'identità utente, il valore della richiesta è user.

Le entità che elaborano e convalidano il token di accesso possono utilizzare il valore della richiesta sub_type per chiamare l'API REST dei domini di Identity /Asserter. Utilizzare questo endpoint per richiedere i ruoli applicazione per un client indicato dalla richiesta sub. Il valore della richiesta sub_type viene passato a /Asserter utilizzando il parametro di richiesta SubjectType. Senza passare in modo specifico client all'endpoint /Asserter, i domini di Identity in genere presuppongono che l'Asserter richieda informazioni per un utente anziché per un client. Di conseguenza, il parametro di input SubjectType dell'endpoint /Asserter e la richiesta sub_type del token di accesso possono essere utilizzati dalle entità che elaborano il token di accesso per far valere AppRoles del client.

user_id* GUID dei domini di Identity dell'utente dal contesto AuthN per i token utente. Non presente nei token solo client.
user_displayname* Nome visualizzato del dominio di Identity dell'utente (255 caratteri ASCII al massimo) dal contesto AuthN. Non presente nei token solo client.
user_tenantname* Nome tenant utente (255 caratteri ASCII al massimo). Può essere diverso dalla tenancy delle risorse per i casi d'uso tra tenant. Il GUID del tenant non viene salvato in modo specifico nel token e non è presente nei token solo client.
tenant* Nome tenant risorsa quando è stata effettuata la richiesta per il token di accesso (255 caratteri ASCII al massimo). Il GUID del tenant della risorsa non è stato salvato in modo specifico nel token.
user.tenant.name* Uguale a tenant. Questo viene tracciato per scopi di compatibilità con le versioni precedenti fino a quando non ci sono più consumatori legacy. Nota: il nome tenant è il dominio di Identity.
aud Contiene la stringa URI che il server delle risorse prevede corrisponda ai prefissi delle risorse dell'URL di destinazione. È possibile specificare più stringhe URI utilizzando il formato AUD standard. Ciò si verifica quando la richiesta OIDC contiene anche ambiti per altri server risorse. Ad esempio: ["https://<domainURL>/", "https://example.com"]
iat L'ora (ora dell'epoca UNIX) in cui è stato emesso il JWT. UNIX Epoch Time è un numero JSON che rappresenta il numero di secondi da 1970-01-01T0:0:0Z misurato in UTC (Coordinated Universal Time) fino alla data/ora.
sid L'ID sessione del token di identità è il token di identità utilizzato durante la richiesta del token.
exp L'ora (ora dell'epoca UNIX) in cui il JWT scade (in secondi). Vedere la tabella Scadenza token.
scope Stringa delimitata da spazi che contiene gli ambiti.
jti Identificativo univoco generato dal server per l'ID JWT.
client_id* ID client OAuth. Si tratta del GUID del client OAuth che effettua la richiesta. Quando Cloud Gate effettua richieste, si tratta del GUID della OAuth CloudGate definita nella tenancy oracle globale.
client_name* OAuth client_name. Questo è il nome del client OAuth che effettua la richiesta. Quando CloudGate effettua richieste, questo è il nome del client CloudGate OAuth definito nella tenancy oracle globale.
client_tenantname* Nome tenant client (max 255). Può essere diverso dalla tenancy delle risorse per i casi d'uso tra tenant.

Specifica della scadenza di un token di accesso personalizzato

Utilizzare la richiesta e la risposta di esempio riportate di seguito per specificare un valore di scadenza del token di accesso personalizzato in una richiesta di token di accesso a un dominio di Identity.

Nota

La scadenza del token personalizzato è comunque soggetta alle regole di scadenza complessive del token di accesso. Vedere la tabella Scadenza token.

Richiesta di esempio

   curl -k -i 
   -H 'Authorization: Basic dGVzdERvbWFpbkFkbWluOmZmNGUzNGE3LWVlNGQtNDAzNy1iNmNmLTUwZGVmMmNjMzM5Zg==' 
   -H 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' 
   --request POST 'https://<domainURL>/oauth2/v1/token'
   -d 'grant_type=client_credentials&scope=urn:opc:idm:__myscopes__%20urn:opc:resource:expiry=300'

Risposta di esempio

{
"access_token":"eyJ4NXQjUzIc....q3E8x1tTEwPthTg",
"token_type":"Bearer", 
"expires_in":300 
}