jeton d'accès

Pour les transactions OAuth réussies, le serveur d'autorisation de domaine d'identité IAM doit émettre des jetons d'accès à utiliser pour authentifier un appel d'API. Un jeton d'accès représente une autorisation émise à l'application client contenant les informations d'identification utilisées pour accéder aux ressources OAuth protégées.

Le jeton d'accès fournit une session (avec portée et expiration) que votre application client peut utiliser pour effectuer des tâches dans l'API REST des domaines d'identité. Le jeton d'accès peut être obtenu à l'aide de la console du domaine d'identité ou par programmation (exécution d'un appel d'API REST à l'aide de l'ID et de la clé secrète du client d'application). Les applications peuvent demander un jeton d'accès pour accéder aux adresses protégées de différentes manières, en fonction du type d'octroi indiqué dans l'application. Une autorisation est une information d'identification représentant l'autorisation du propriétaire de la ressource d'accéder à une ressource protégée. Reportez-vous à Types d'octroi d'accès.

Nom Valeur
tok_type* Identifie le type de jeton : AT
iss Principal ayant émis le jeton : https://<domainURL>
sub Identifie l'entité (Utilisateur/Client) qui demande l'accès. L'identifiant du sujet est localement unique et est destiné à être consommé par le client. Dans le cas des jetons IDPropagation, il contient l'ID utilisateur de l'utilisateur. Dans d'autres cas, il contient clientID.
sub_mappingattr* Attribut utilisé pour rechercher sub dans la banque d'ID. Correspondance attr des paramètres SSO.
sub_type

Le jeton d'accès aux domaines d'identité contient la demande sub_type qui indique le type de sujet (réclamation sub) transmis par le jeton. Si le jeton est émis uniquement pour le compte du client, la valeur de la réclamation est client. Sinon, si le jeton propage une identité utilisateur, la valeur de la demande est user.

Les entités traitant et validant le jeton d'accès peuvent utiliser la valeur de la demande sub_type pour appeler l'API REST /Asserter des domaines d'identité. Utilisez cette adresse pour demander des rôles d'application pour un client indiqué par la demande sub. La valeur de la demande sub_type est transmise à /Asserter à l'aide du paramètre de demande SubjectType. Sans transmettre spécifiquement client à l'adresse /Asserter, les domaines d'identité supposent normalement que l'assesseur demande des informations pour un utilisateur plutôt que pour un client. Par conséquent, le paramètre d'entrée SubjectType de l'adresse /Asserter et la demande sub_type du jeton d'accès peuvent être utilisés par les entités qui traitent le jeton d'accès pour affirmer la valeur AppRoles du client.

user_id* GUID des domaines d'identité de l'utilisateur provenant du contexte AuthN pour les jetons utilisateur. Non présent dans les jetons client uniquement.
user_displayname* Nom d'affichage des domaines d'identité de l'utilisateur (255 caractères ASCII maximum) à partir du contexte AuthN. Non présent dans les jetons client uniquement.
user_tenantname* Nom du locataire utilisateur (255 caractères ASCII maximum). Peut être différent de la location de ressource pour les cas d'utilisation inter-locataires. Le GUID du locataire n'est spécifiquement pas enregistré dans le jeton et n'est pas présent dans les jetons client uniquement.
tenant* Nom du locataire de ressource lorsque la demande du jeton d'accès a été effectuée (255 caractères ASCII au maximum). Le GUID du locataire de ressource n'est spécifiquement pas enregistré dans le jeton.
user.tenant.name* Identique à tenant. Ce suivi est effectué à des fins de compatibilité descendante jusqu'à ce qu'il n'y ait plus de consommateurs hérités. Remarque : le nom de locataire est le domaine d'identité.
aud Contient la chaîne d'URI attendue par le serveur de ressources pour correspondre aux préfixes de ressource de l'URL cible. Vous pouvez spécifier plusieurs chaînes d'URI au format AUD standard. C'est le cas lorsque la demande OIDC contient également des portées pour un autre serveur de ressources. Par exemple : ["https://<domainURL>/", "https://example.com"]
iat Heure (heure UNIX) à laquelle le jeton JWT a été émis. UNIX Epoch Time est un nombre JSON représentant le nombre de secondes entre 1970-01-01T0 :0:0Z, mesuré en temps universel coordonné (UTC) et la date/heure.
sid L'ID de session du jeton d'identité est celui qui a été utilisé lors de la demande de jeton.
exp Heure (heure UNIX) à laquelle le jeton JWT expire (en secondes). Reportez-vous à la table d'expiration des jetons.
scope Chaîne délimitée par des espaces contenant des portées.
jti Identificateur unique généré par le serveur pour l'ID JWT.
client_id* ID de client OAuth. Il s'agit du GUID du client OAuth qui effectue la demande. Lorsque Cloud Gate effectue des demandes, il s'agit du GUID de l'élément OAuth CloudGate défini dans la location oracle globale.
client_name* OAuth client_name. Il s'agit du nom du client OAuth qui effectue la demande. Lorsque CloudGate effectue des demandes, il s'agit du nom du client CloudGate OAuth défini dans la location oracle globale.
client_tenantname* Nom du locataire client (max. 255). Peut être différent de la location de ressource pour les cas d'utilisation inter-locataires.

Spécification d'une expiration de jeton d'accès personnalisé

Utilisez l'exemple de demande et de réponse suivant pour indiquer une valeur d'expiration de jeton d'accès personnalisé dans une demande de jeton d'accès à un domaine d'identité.

Remarque

L'expiration du jeton personnalisé est toujours soumise aux règles d'expiration globales du jeton d'accès. Reportez-vous à la table d'expiration des jetons.

Exemple de demande

   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'

Exemple de réponse

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