Utilisation d'un jeton OAuth pour Platform Services

Le service de jeton OAuth 2.0 fourni par les domaines d'identité est un mécanisme qui vous permet d'utiliser un jeton sécurisé pour accéder aux adresses REST d'Oracle Cloud Platform Services (PaaS).

Remarque

  • Pour accéder à un service de plate-forme cloud intégré aux domaines d'identité, vous avez besoin de l'URL de domaine d'identité. Si vous ne connaissez pas l'URL de domaine d'identité, reportez-vous à Recherche d'une URL de domaine d'identité.

  • Des exemples cURL sont utilisés dans la procédure pour obtenir un jeton d'accès à partir des domaines d'identité, puis accéder à une adresse REST de service de plate-forme cloud avec le jeton.

Un jeton d'accès OAuth a une valeur d'expiration de 86 400 secondes (24 heures). Pour effectuer des demandes d'API REST 24 heures après l'obtention d'un jeton d'accès, vous devez obtenir un nouveau jeton.

Prérequis

Obtenez les informations suivantes du domaine d'identité avant de commencer.

  • URL de domaine d'identité
  • ID du client
  • Secret client
  • URL du public principal
  • Champ d'application autorisé
  1. Connectez-vous au tableau de bord Mes services pour votre domaine d'identité.

    Remarque

    Vous devez disposer du rôle d'administrateur de domaine d'identité ou du rôle d'administrateur PaaS pour suivre les étapes de cette procédure.
  2. Dans la liste des services, recherchez l'entrée du domaine d'identité, puis cliquez sur Cloud d'identité.

  3. Dans l'onglet Présentation, recherchez la section Instances de service, puis copiez la valeur affichée dans le champ URL d'instance de service.

    Par exemple : https://<domainURL>.identity.oraclecloud.com/ui/v1/adminconsole

    <domainURL> est la partie serveur REST de l'URL de domaine d'identité (qui fait partie de l'URL d'adresse pour la demande d'un jeton d'accès).

  4. Cliquez sur Ouvrir la console de service, développez le volet de navigation, puis cliquez sur Applications.

  5. Dans le champ de recherche, entrez PSM, puis cliquez sur l'icône de recherche. Dans les résultats, recherchez l'entrée intitulée Prise en charge de l'application PSM pour l'API OAuth.

    Remarque

    L'application Platform Service Manager (PSMApp) n'est pas disponible pour les comptes Oracle Cloud créés avant la version 18.1.4.
  6. Cliquez sur le nom de l'application intitulée Application PSM pour la prise en charge de l'API OAuth. Le nom se présente sous la forme PSMApp-cacct-string-of-letters-and-numbers.

    Par exemple :

    PSMApp-cacct-9z8x7c6v5b4n3m

    Il s'agit de l'application client PSM sécurisée de domaine d'identité, créée automatiquement pour les comptes Oracle Cloud (après la version 18.1.4) et associée à Oracle Cloud Platform Service.

  7. Cliquez sur Configuration. Sous Informations générales, copiez la valeur affichée dans le champ ID client.

    Il s'agit de l'ID client PSMApp. Par exemple :

    PSMApp-cacct-9z8x7c6v5b4n3m_APPID

  8. Cliquez sur Afficher la clé secrète, puis copiez la valeur.

    Il s'agit de la clé secrète du client PSMApp. Par exemple :

    c53b437-1768-4cb6-911e-1e6eg2g3543

  9. Développer les ressources. Copiez la valeur affichée dans le champ Public principal.

    Il s'agit de l'URL de l'audience principale PSMApp. Par exemple :

    https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com

  10. Dans la section Portées autorisées, copiez la valeur Portée du droit d'accès 1PaaS.

    urn:opc:resource:consumer::all

Obtention d'un jeton d'accès OAuth

Avec les informations collectées, utilisez l'adresse d'API REST des domaines d'identité /oauth2/v1/token pour obtenir un jeton.

   curl -k 
   -X POST -u "client-id:client-secret" 
   -d "grant_type=password&username=yourusername&password=yourpassword&scope=https://primary-audience-and-scope" "https://identity-cloud-service-instance-url/oauth2/v1/token"

Où :

  • client-id est l'ID de client PSMApp.

  • client-secret est la clé secrète du client PSMApp

  • yourusername est le nom utilisateur du service de plate-forme cloud avec un rôle d'administrateur.

  • yourpassword est le mot de passe du nom utilisateur.

  • primary-audience-and-scope est une concaténation de l'URL d'audience principale PSMApp et de la portée du droit d'accès 1PaaS

  • identity-cloud-service-instance-url est la partie serveur REST de l'URL de domaine d'identité

Par exemple :

   curl -k 
-X POST -u "PSMApp-cacct-9z8x7c6v5b4n3m_APPID:c53b437-1768-4cb6-911e-1e6eg2g3543" 
-d "grant_type=password&username=yourusername&password=yourpassword&scope=https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.comurn:opc:resource:consumer::all" "https://<domainURL>.identity.oraclecloud.com/oauth2/v1/token"

L'exemple suivant illustre la réponse renvoyée.

{
    "access_token": "eyJ7NXQ...fMf46Q0yKopDxQ",
    "token_type": "Bearer",
    "expires_in": 86400
}
Remarque

La chaîne de jeton est tronquée dans l'exemple de réponse. Copiez l'ensemble de la chaîne de jeton (entre guillemets) comme illustré dans votre réponse.

Utiliser le jeton d'accès OAuth dans les demandes d'API REST Cloud Platform Service

Après avoir obtenu un jeton d'accès OAuth 2.0, vous devez fournir le jeton dans un en-tête de jeton du service support de la demande REST de service de plate-forme cloud.

   curl -i 
   -X GET 
   -H "Authorization: Bearer token-string" "https://primary-audience/rest-endpoint-path"

Où :

  • token-string est le jeton d'accès OAuth que vous avez obtenu

  • primary-audience est l'URL de l'audience principale PSMApp

  • rest-endpoint-path est le chemin relatif qui définit la ressource REST du service de plate-forme cloud. Notez que l'ID de domaine d'identité peut être utilisé dans le chemin.

Par exemple, la commande cURL suivante extrait toutes les instances Oracle Java Cloud Service.
   curl -i -X GET 
   -H "Authorization: Bearer eyJ7NXQ...fMf46Q0yKopDxQ" "https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com/paas/api/v1.1/instancemgmt/idcs-9a888b7e6ebb44b4b65/services/jaas/instances"