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 points d'extrémité REST d'Oracle Cloud Platform Services (PaaS).

Note

  • Pour accéder à un service de plate-forme en nuage intégré aux domaines d'identité, vous avez besoin de l'URL du domaine d'identité. Si vous ne connaissez pas l'URL du domaine d'identité, voir 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 de domaines d'identité, puis accéder à un point d'extrémité REST du service de plate-forme en nuage 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éalables

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

  • URL du domaine d'identité
  • ID client
  • Secret de client
  • URL de l'audience principale
  • Portée autorisée
  1. Connectez-vous au tableau de bord Mes services pour votre domaine d'identité.

    Note

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

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

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

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

  4. Sélectionnez Ouvrir la console de service, développez le tiroir de navigation, puis sélectionnez Applications.

  5. Dans le champ de recherche, entrez PSM, puis sélectionnez l'icône de recherche. Dans les résultats, repérez l'entrée intitulée Application PSM pour la prise en charge de l'API OAuth.

    Note

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

    Par exemple :

    PSMApp-cacct-9z8x7c6v5b4n3m

    Il s'agit de l'application client PSM approuvée pour le 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. Sélectionnez 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. Sélectionnez Afficher la clé secrète, puis copiez la valeur.

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

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

  9. Développez Ressources. Copiez la valeur affichée dans le champ Public principal.

    Il s'agit de l'URL d'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 pour l'autorisation 1PaaS.

    urn:opc:resource:consumer::all

Obtenir un jeton d'accès OAuth

Avec les informations que vous avez collectées, utilisez le point d'extrémité 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 client PSMApp

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

  • yourusername est le nom d'utilisateur du service de plate-forme en nuage doté du rôle d'administrateur

  • yourpassword est le mot de passe du nom d'utilisateur

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

  • identity-cloud-service-instance-url est la partie serveur REST de l'URL du 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"

Voici un exemple de la réponse retournée.

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

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

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

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

   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 d'audience principale PSMApp

  • rest-endpoint-path est le chemin relatif qui définit la ressource REST du service de plate-forme en nuage. Notez que l'ID 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"