Ce document explique comment créer les certificats, clés et jetons à exécuter.

Objectif

Pour fournir des étapes claires et reproductibles permettant de générer un jeton porteur Adobe IO afin d’exécuter des appels API pour les solutions DMA telles que Target.

Étapes

Procédure à suivre pour créer un jeton porteur afin d’exécuter des appels API d’Adobe IO :

  1. Générer une clé privée et un certificat public
  2. Création d’une intégration dans la console d’Adobe IO
  3. Générer un jeton JWT
  4. Échange de jeton JWT pour un jeton porteur d’accès
  5. Jeton porteur d’accès utilisateur pour exécuter les appels d’API
  1. Générez la clé privée et le certificat public selon la documentation suivante : https://www.adobe.io/apis/cloudplatform/console/authentication/createcert.html

    Sur Mac, les commandes suivantes sont intégrées au terminal. 
    Sur un ordinateur, vous devez télécharger Cygwin (ou tout autre outil de préférences personnelles) et l’exécuter à partir de la ligne de commande. Voici les étapes de téléchargement et d’installation de Cygwin :

    1. Accédez à https://cygwin.com/install.html
    2. Télécharger et exécuter setup-x86_64.exe

    Remarque : votre répertoire personnel est le suivant : C:\cygwin64\home\WINDOWSUSER
    Vous pouvez rechercher et installer des packages supplémentaires lors de l’installation. Je vous conseille d’installer tout ce qui concerne «curl» et «ssh.»

    Voici la commande à exécuter :

    $ openssl req -nodes -text -x509 -newkey rsa:2048 -keyout secret.pem -out certificate.pem -days 356

    Remarque: Il vous pose plusieurs questions que vous devez compléter pour générer le certificat, consultez la capture d’écran ci-dessous :

    rtaImage

    Une fois les fichiers créés, vous pouvez convertir le fichier secret.key en secret.pem à l’aide de la commande suivante :

    $ openssl pkcs8 -topk8 -inform PEM -outform DER -in secret.pem  -nocrypt > secret.key

    Voici les fichiers créés dans votre système de fichiers ( à ce stade vous pouvez déplacer ces fichiers à un autre emplacement de votre ordinateur pour votre propre organisation) :

    rtaimage_1_

    Remarque :

    Les fichiers sont générés dans votre répertoire personnel : C:\cygwin64\home\WINDOWSUSER

  2. Créez l’intégration avec la console Adobe IO :

    rtaimage_2_
    • Sélectionnez l’option « Accès à une API », puis cliquez sur « Continuer ».
    rtaimage_3_
    • Sélectionnez la solution Adobe (actuellement disponible uniquement pour la cible).

    Remarque : l’utilisateur doit être un utilisateur d’Experience Cloud ET avoir accès à cette solution.

    rtaimage_4_
    • Sélectionnez « Nouvelle intégration » et cliquez sur « Continuer ».
    rtaimage_5_
    • Complétez le formulaire d’intégration.
    rtaimage_6_
    • Faites glisser le fichier « certificate.pem » du système de fichiers dans le formulaire à télécharger.
    rtaimage_7_
    • Une fois le fichier téléchargé, cliquez sur le bouton « Créer une intégration » - Voir la capture d’écran : fileuploaded_createint.
    rtaimage_8_
    • Une fois le traitement terminé, cliquez sur « continuer les détails de l’intégration ».
    rtaimage_9_

    Succès! Vous avez maintenant créé une intégration.

    rtaimage_10_
  3. Générez le jeton Web JSON (JWT) :

    Dans l’interface utilisateur d’intégration, cliquez sur l’onget JWT, collez dans la clé privée, cliquez sur Générez le bouton JWT - voir la capture d’écran : générez JWT - Saisie.

    rtaimage_11_
    • Une fois généré, le JWT et un exemple de commande CURL s’affichent.
    • Cliquez sur l’icône « copie » ci-dessous sous « JWT généré ».
    rtaimage_12_
  4. Échanger JWT pour le jeton porteur d’accès :

    Remarque : si vous exécutez cela sur un terminal Mac, la réponse semble être tronquée. Au lieu de cela, utilisez Postman.

    • Téléchargez et installez l’outil gratuit d’API nommé « Postman » (disponible sur Mac, Windows ou Linux) : https://www.getpostman.com/
    • Importez cet appel api dans Postman en copiant le code ci-dessous dans un fichier texte sur votre ordinateur avec une extension .json :
    {"id":"f6854718-2800-64a8-238e-e785e344f6cf","name":"Exchange JWT for Bearer token","description":"","order":["048b6fc7-f1db-5028-ff21-45778613e2c5"],"folders":[],"folders_order":[],"timestamp":1516812553075,"owner":"860614","public":false,"events":[],"variables":[],"auth":null,"requests":[{"id":"048b6fc7-f1db-5028-ff21-45778613e2c5","name":"Exchange JWT for Bearer token","collectionId":"f6854718-2800-64a8-238e-e785e344f6cf","method":"POST","description":"JWT exchange flow","headers":"","dataMode":"params","data":[{"key":"client_id","value":"0fa5e762277c414f903649dd51424ac6","type":"text"},{"key":"client_secret","value":"9ff026f2-dfa4-4228-8dfa-11d809d4706b","type":"text"},{"key":"jwt_token","value":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjE0ODg4ODMzMzIsImlzcyI6IjY1NzhBNTU0NTZFODRFMjQ3RjAwMDEwMUBBZG9iZU9yZyIsInN1YiI6IjlDQjEyOTlENThCM0VDNkYwQTQ5NUM3RkB0ZWNoYWNjdC5hZG9iZS5jb20iLCJhdWQiOiJodHRwczovL2ltcy1uYTEuYWRvYmVsb2dpbi5jb20vYy8wZmE1ZTc2MjI3N2M0MTRmOTAzNjQ5ZGQ1MTQyNGFjNiIsImh0dHBzOi8vaW1zLW5hMS5hZG9iZWxvZ2luLmNvbS9zL2VudF9zbWFydGNvbnRlbnRfc2RrIjp0cnVlfQ.LwiDDjhwUfZ2ap89vfWd2ZVnfG-FwpQplKvzEecTLua_hvGNfQAZBPTHbVaXICPkeNjr41cRUr_OmNuOmtFOwVokUjd5rQCaGOqBNWWKPAyAAdXhBdE05oFa2Gar6adytKv-vf7gAnVQbv-PUADbCCtmxoOygbafXi9V3ZHz1FBwPJ8vpnZH4Il3zVf420XwnzLa9IB02nUciG_fQ0b1Qgj429Yi7m-lhW--2bMZKyNdSnioNaICFg6ASY1vnNm1zICPla224K_Lwzbrye8itgQStRUp1mH53Ww36xzqVxNIYLQCEoI9qxAJlR0HQhaXeSPrU9PmcExIyKBim2CZzg","type":"text"}],"rawModeData":"","url":"https:\/\/ims-na1.adobelogin.com\/ims\/exchange\/jwt\/","responses":[],"pathVariableData":[],"queryParams":[],"headerData":[],"auth":null,"collection_id":"08283cc0-461e-155c-e07f-ca64bae1dcae","isFromCollection":true,"collectionRequestId":"29f7fc5f-7e6d-01d4-de86-2f273b8a6429","currentHelper":null,"helperAttributes":null}]}

    Exemple de nom de fichier : exchangeJwt.json

    rtaimage_13_
    • Importez le fichier dans Postman en accédant à Fichier > Importer : vous pouvez faire glisser le fichier .json ici ou rechercher le fichier.
    rtaimage_14_
    • Cela crée une « collection » dans Postman sur le côté gauche, avec un appel API nommé « Exchange JWT for Bearer token ».
    rtaimage_15_
    • Cliquez sur l’appel d’API « Exchange JWT for Bearer token ».
    • Dans la section principale de l’interface utilisateur, voici ce que vous voyez :
    rtaimage_16_

    Remarque : comme indiqué en rouge ci-dessus, je suis dans l’onglet « Body ». Si vous êtes dans un autre onglet, vous ne voyez pas les trois informations nécessaires.

    Informations requises :
    client_id: obtenir de la page d’aperçu de l’intégration
    client_secret: générer sur la page d’aperçu de l’intégration
    jwt_token: coller le jeton JWT généré que vous avez copié à l’étape précédente

    Cliquez « Send ».
    Le jeton porteur est récupéré, qui est utilisé pour effectuer des appels API.

    rtaimage_17_

    Access_token est ce qui est utilisé dans le cadre des appels API que vous avez l’intention d’exécuter.

    "access_token": "eyJ4NXUiOiJpbXNfbmExLWtleS0xLmNlciIsImFsZyI6IlJTMjU2In0.eyJpZCI6IjE1MTY3NDgxNjU5MzZfMjdiNTkwYmUtYjVlYy00ZjhiLTkzNWEtZTAyMjZmYTZiYTk1X3VlMSIsImNsaWVudF9pZCI6IjQyOTkxMzRlNzRkNTRkNTZhY2YyYTc4YjcyYTdlNDFlIiwidXNlcl9pZCI6IjkwNTEyQTlDNUE2N0I3ODEwQTQ5NUM5NEB0ZWNoYWNjdC5hZG9iZS5jb20iLCJ0eXBlIjoiYWNjZXNzX3Rva2VuIiwiYXMiOiJpbXMtbmExIiwiZmciOiJTRDRZQUNZSEhQSDdPRkFBQUFBQUFBQUFFST09PT09PSIsIm1vaSI6IjM3NTliZjQxIiwiYyI6IndTVTd3b1hIZkZSQk5xQmo3M2Z4anc9PSIsImV4cGlyZXNfaW4iOiI4NjQwMDAwMCIsInNjb3BlIjoib3BlbmlkLEFkb2JlSUQsdGFyZ2V0X3NkayxyZWFkX29yZ2FuaXphdGlvbnMsYWRkaXRpb25hbF9pbmZvLnByb2plY3RlZFByb2R1Y3RDb250ZXh0IiwiY3JlYXRlZF9hdCI6IjE1MTY3NDgxNjU5MzYifQ.fVJVREKZH3PM71-Y05Kkqqxq_O_z7BL5NL6S4ypNoSwLuqR9WOiXsF0GYcWZr6oO-jgYj8WrRePQLkg4GSoVthSbbXU6aqajPV2TsFNHpXRuJFBhql0e2eVCEE_pVI9O_uCa8RloGjJuFyyEAvroQFEIJzC7Q-OAnkXMT7xD-3r1cEV2xP_N3s86t34M5udO4fjas3RCJtAS1BEZOotlF_rB0kfvCZR9Krf-SVi_VedpsK7ipoJGfs7CLdN-_a4YGTC2CBJXwdK-4T0QJRkWedr8ooS0tzzfVcQ4WEZfw1edi-OYSuIbXf-Obl5R9NCzi5RMceiGTyGMyRrEcmy3WQ"
  5. Exemple d’appel API :

    • Target
    • Exécuter l’appel Target avec le jeton d’accès
    rtaimage_18_

Informations supplémentaires

Documentation de référence :

Telechargement

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne