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).
-
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 de domaines d'identité, puis pour 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 à partir du domaine d'identité avant de commencer.
- URL de domaine d'identité
- ID client
- Clé secrète du client
- URL du public principal
- Portée autorisée
-
Connectez-vous au tableau de bord Mes services de 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. -
Dans la liste des services, recherchez l'entrée du domaine d'identité, puis sélectionnez Identity Cloud.
-
Dans l'onglet Présentation, 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/adminconsoleOù
<domainURL>est la partie serveur REST de l'URL de domaine d'identité (qui fait partie de l'URL endpoint pour demander un jeton d'accès). -
Sélectionnez Ouvrir la console de service, développez le volet de navigation, puis sélectionnez Applications.
-
Dans le champ de recherche, entrez
PSM, puis sélectionnez l'icône de recherche. Dans les résultats, recherchez l'entrée intitulée Prise en charge de l'application PSM pour 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. -
Sélectionnez le nom de l'application intitulée PSM App for API OAuth support. Le nom est au format
PSMApp-cacct-string-of-letters-and-numbers.Par exemple :
PSMApp-cacct-9z8x7c6v5b4n3mApplication 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.
-
Sélectionnez Configuration. Sous Informations générales, copiez la valeur affichée dans le champ ID client.
ID client PSMApp. Par exemple :
PSMApp-cacct-9z8x7c6v5b4n3m_APPID -
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 -
Développez Ressources. Copiez la valeur affichée dans le champ Public principal.
Il s'agit de l'URL du public principal PSMApp. Par exemple :
https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com -
Dans la section Portées autorisées, copiez la valeur Portée pour le droit d'accès 1PaaS.
urn:opc:resource:consumer::all
Obtenir un jeton d'accès OAuth
Avec les informations collectées, utilisez l'adresse d'API REST de 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-idest l'ID client PSMApp. -
client-secretest la clé secrète du client PSMApp -
yourusernameest le nom utilisateur du service de plate-forme cloud avec un rôle d'administrateur -
yourpasswordest le mot de passe du nom utilisateur. -
primary-audience-and-scopeest une concaténation de l'URL du public principal PSMApp et de la portée de droit d'accès 1PaaS. -
identity-cloud-service-instance-urlest 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
}
La chaîne de jeton est tronquée dans l'exemple de réponse. Copiez l'intégralité de la chaîne de jeton (entre guillemets) comme illustré dans votre réponse.
Utilisation du 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 fournissez le jeton dans un en-tête de jeton du 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-stringest le jeton d'accès OAuth que vous avez obtenu -
primary-audienceest l'URL du public principal PSMApp -
rest-endpoint-pathest 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.
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"