Configuration des E/S d’Adobe : Authentification - Étape par étape

Description


Problème


Comment générer un jeton porteur d’E/S d’Adobe pour exécuter des appels API pour des solutions de marketing numérique telles que Target.

Résolution

Procédure de création d’un jeton porteur pour exécuter les appels API d’E/S d’Adobe :

  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. Échanger le jeton JWT contre un jeton du porteur d’accès
  5. Jeton du porteur d’accès utilisateur pour exécuter les appels API
  • Générez une clé privée et un 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 à un 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 à suivre pour télécharger et installer Cygwin :

    1. Accédez à https://cygwin.com/install.html
    2. Téléchargez et exécutez 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 pendant la phase d’installation. Je vous recommande 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 à remplir pour générer le certificat ; voir la capture d’écran ci-dessous :rtaImage

      Une fois les fichiers créés, vous convertissez 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 sur votre système de fichiers (vous pouvez déplacer ces fichiers vers un autre emplacement de votre ordinateur à ce stade pour l’organisation) :
rtaimage_1_ Remarque : Les fichiers sont générés dans votre répertoire personnel : C:\cygwin64\home\WINDOWSUSER

  • Créez une intégration dans la console d’Adobe IO :

rtaimage_2_

- Sélectionnez l’option "Accéder à une API", puis cliquez sur "Continuer".

rtaimage_3_

- Sélectionnez Solution d’Adobe (actuellement disponible uniquement pour Target).

<b>Remarque :</b> 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_

- Remplissez le formulaire d’intégration.

rtaimage_6_

- Faites glisser « certificate.pem » du système de fichiers vers le formulaire à charger.
rtaimage_7_
- Une fois le fichier téléchargé, cliquez sur le bouton « Créer l’intégration » - voir la capture d’écran : fileuploaded_createint.
rtaimage_8_
- Une fois le traitement terminé, cliquez sur "Continuer vers les détails de l’intégration".

rtaimage_9_
 
Réussite! Vous avez maintenant créé une intégration.
rtaimage_10_

  • Générer un jeton Web JSON (JWT) :

    Dans l’interface utilisateur d’intégration, cliquez sur l’onglet JWT, collez dans la clé privée, cliquez sur le bouton Générer JWT - voir la capture d’écran : génération de JWT - entrée.
    rtaimage_11_

    • Une fois généré, vous voyez le JWT et un exemple de commande CURL.
    • Cliquez sur l’icône « Copier » sous « JWT généré ».
rtaimage_12_
  • Échangez un jeton JWT contre un jeton d’accès du porteur :

    Remarque : si vous exécutez cette action sur un terminal Mac, la réponse semble être tronquée. Utilisez plutôt Postman.

    • Téléchargez et installez l’outil d’API gratuit nommé "Postman" (disponible sous Mac, Windows ou Linux) : https://www.getpostman.com/
    • Importez cet appel d’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-5022" 8-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":""9ff202" 6f2-dfa4-4228-8dfa-11d809d4706b",""type":""text"},{""key":""jwt_token",""value":""eyJ0eXAiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJeyJeyJey HAiOjE0ODg4ODMzMzIsImlzcyI6IjY1NzhBNTU0NTZFODRFMjQ3RjAwMDEwMUBBZG9iZU9yZyIsInN1YiI6IjlDQ EyOTlenthCM0VDNkYwQTQ5NUM3RkB0ZWNoYWNjdC5hZG9iZS5jb20iLCJhdWQiJodHRwczovL2ltcy1YTE1u YuYWRvYmVsb2dpbi5jb20vYy8wZmE1ZTc2MjI3N2M0MTRmOTAzNjQ5ZGQ1MTQyNGFjIsImh0dHBzOi1zLW5hMS5hZG9iZWxvZ2LmNvbS9zL2VudF9zbWFydGNvbnRfc2RrIjp0cnVlfQ.LwiDDjwUf2Z2Z ap89vfWd2ZVnfG-FwpQplKvzEecTLua_hvGNfQAZBPTHbXICPkeNjr41cRUr_OmNuOmtFOwVokUjdCQ aGOqBNWWKPAyAdXhBdE05oFa2Gar6adytKv-vf7gAnVQbv-PUADbCtmxoOygbafXi9V3ZHz1FBwPJ8vpnZH Il3zVf420XwnzLa9IB02nUciG_fQ0b1Qgj429Yi7m-lhW—2bMZKyNdSnioNaICFg6ASY1vnNm1zICP22 4K_Lwzbrye8itgQStRUp1mH53Ww36xzqVxNIYLQCEoI9qxAJl0HQhaXeSPrU9PmcExIyKBim2CZzg",""":""text"},""rawModeData":"""",""url":""https:\/\/ims-na1.adobelogin.com\/ims\/exchange\/jwt\/",""response":,""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 au fichier Importer : vous pouvez faire glisser et déposer le fichier .json ici ou le rechercher.
rtaimage_14_
- Cela crée une "collection" dans Postman sur le côté gauche, avec un appel API nommé "Exchange JWT for Bearer token" (Échanger JWT pour le jeton porteur).
rtaimage_15_
- Cliquez sur l’appel API "Exchange JWT for Bearer token".
- Dans la section principale de l’interface utilisateur, voici ce que vous voyez :

![rtaimage_16_](https://helpx.adobe.com/content/dam/help/en/marketing-cloud-core/kb/adobe-io-authentication-step-by-step/jcr%3acontent/main-pars/procedure/proc_par/step_3/step_par/image_287339656/rtaimage_16_.png "rtaimage_16_")


  Remarque : comme indiqué en rouge ci-dessus, je suis dans l'onglet "Corps". Si vous vous trouvez dans un autre onglet, vous ne voyez pas les trois informations requises.

Informations nécessaires :

<b>client_id</b> : à obtenir dans la page d’aperçu de l’intégration

<b>client_secret</b> : à générer sur la page d’aperçu de l’intégration

<b>jwt_token</b> : à coller dans le jeton JWT généré que vous avez copié à l’étape précédente



Cliquez sur « Envoyer ».

Le jeton du porteur est récupéré, et est utilisé pour effectuer des appels API.
![rtaimage_17_](https://helpx.adobe.com/content/dam/help/en/marketing-cloud-core/kb/adobe-io-authentication-step-by-step/jcr%3acontent/main-pars/procedure/proc_par/step_3/step_par/image_1624742308/rtaimage_17_.png "rtaimage_17_")


  Le jeton access_token est utilisé dans le cadre des appels API que vous prévoyez d’exécuter.

 

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

    • Target
    • Exécution de l’appel Target avec jeton d’accès
rtaimage_18_

Sur cette page