Développeurs de pancartes OneSpan : notification d'événements OAuth pour Salesforce - Partie 2

Duo Liang, avril 7, 2021

Dans la récente version, OneSpan Sign a introduit un nouveau service de rappel qui met en œuvre le flux de jetons de rafraîchissement OAuth 2.0 de Salesforce, et il est maintenant possible de configurer un écouteur de rappel dans Salesforce ! Dans la première partie de cette série de blogs, nous avons montré comment créer une application connectée dans Salesforce et récupérer un jeton d'actualisation fonctionnel.

Dans ce blog, nous allons montrer comment valider, révoquer et faire tourner le jeton d'actualisation et comment fournir le jeton d'actualisation à OneSpan Sign via l'API. C'est parti !

Testez votre jeton de rafraîchissement

À la fin du blog précédent, nous avons suivi les étapes pour récupérer un jeton de rafraîchissement. Avant de le fournir à OneSpan Sign, nous pouvons effectuer un test rapide au niveau local, en créant une URL à partir du modèle ci-dessous et en l'ouvrant dans un navigateur :

https://login.salesforce.com/services/oauth2/token?client_id={votre_id_client}&grant_type=refresh_token&refresh_token={the_refresh_token}

Cette API Salesforce renouvelle la session, suivie du flux OAuth 2.0 Refresh Token, qui est similaire à l'appel que le service OneSpan Sign utilise en coulisse. Un jeton de rafraîchissement valide renvoie un jeton d'accès qui apparaît comme tel :

4-7-1

Rotation des jetons de rafraîchissement

Dans le cadre de la politique de sécurité par défaut, le jeton de rafraîchissement sera valide jusqu'à ce qu'il soit révoqué. Il est donc important de renouveler souvent le jeton d'actualisation ou de mettre à jour les paramètres de la politique OAuth, afin d'éviter tout risque potentiel pour la sécurité

Afin de révoquer le jeton de rafraîchissement actuel, construisez le lien ci-dessous et ouvrez-le dans votre navigateur :

https://login.salesforce.com/services/oauth2/revoke?token={votre_token_refresh}

Le navigateur ne renverra rien, mais vous pouvez vérifier la révocation en reproduisant la section ci-dessus.

Alternativement, vous pouvez mettre à jour les paramètres de la politique OAuth si vous suivez les étapes distinctes ci-dessous :

  • Dans l'expérience de l'éclair, naviguer à la configuration et rechercher "App Manager"
  • Trouvez l'application connectée que nous avons enregistrée, développez la liste déroulante et choisissez "Gérer"
  • Cliquez sur le bouton "Edit Policies" et trouvez la section "OAuth Policies"

 4-7-2

Une fois que le jeton d'actualisation a été révoqué ou a expiré, récupérez le dernier jeton d'actualisation, mettez-le à jour via le service OneSpan Sign (abordé dans la section ci-dessous) et effectuez des tests de simulation pour éviter tout impact sur votre activité en raison d'un temps d'arrêt

Mise à jour du service de rappel des signatures de OneSpan

Une fois que vous avez entièrement configuré l'application connectée et exposé un point de terminaison de rappel, vous devez mettre à jour le service de rappel de OneSpan Sign avec vos configurations. Cela se fait à l'aide des appels API suivants :

Demande HTTP

POST /api/callback/connecteurs/salesforceOauth2

En-têtes HTTP

Content-Type : application/json Accept : application/json Authorization : Basic api_key

Exemple de charge utile

{ "url" : "https://yourdomain.salesforce.com/services/apexrest/oss/callback", "events" : ["DOCUMENT_SIGNED", "EMAIL_BOUNCE", "KBA_FAILURE", "PACKAGE_ACTIVATE", "PACKAGE_ARCHIVE", "PACKAGE_ATTACHMENT", "PACKAGE_COMPLETE", "PACKAGE_CREATE", "PACKAGE_DEACTIVATE", "PACKAGE_DECLINE", "PACKAGE_DELETE", "PACKAGE_EXPIRE", "PACKAGE_OPT_OUT", "PACKAGE_READY_FOR_COMPLETE", "PACKAGE_RESTORE", "PACKAGE_TRASH", "ROLE_REASSIGN", "SIGNER_COMPLETE", "SIGNER_LOCKED", "TEMPLATE_CREATE"], "key" : "eyJob3N0IjoibG9naW4uc2FsZXNmb3JjZS5jb20iLCJjbGllbnRfaWQiOiIzTVZHOWRaSm94eHhSeXFpcGpHY2lYbzU2MUZnIiwicmVmcmVzaF90b2tlbiI6IjVBZXA4NjF2eHh4UTYzeHE3MG85dXNEeiJ9" }

Note :

  • "url" pointe vers l'URL de rappel. Nous allons démontrer comment exposer un point de terminaison REST de Salesforce dans le prochain blog.
  • Vous pouvez ajouter tous les événements de rappel énumérés dans le guide "Configuration des notifications de rappel".
  • "key" est une structure codée en base64 suivant le format ci-dessous :

 

{"host" : "login.salesforce.com", "client_id" : "3MVG9dZJoxxxRyqipjGciXo561Fg", "refresh_token" : "5Aep861vxxxQ63xq70o9usDz"}
  • L'"hôte" désigne soit "test.salesforce.com" (bac à sable SFDC), soit "login.salesforce.com" (SFDC production/développement). Ce n'est pas une URL complète (sans "https://") et elle ne fait pas référence à votre propre domaine.

Ensuite, vous pouvez vérifier les paramètres de rappel actuels avec un appel GET :

Demande HTTP

GET /api/callback/connecteurs/salesforceOauth2

En-têtes HTTP

Content-Type : application/json Accept : application/json Authorization : Basic api_key

Il est important de savoir que vous pouvez définir plusieurs paramètres de rappel en même temps : rappel par défaut (avec authentification Basic), paramètres de rappel Salesforce (salesforceOauth2), ou paramètres d'autres connecteurs comme SharePoint ou Dynamics. Cependant, le choix de l'auditeur de rappel qui recevra la notification est déterminé par les données "origin" dans votre paquet JSON

Prenons l'exemple de la version actuelle (11.40). Si une transaction est créée à partir du portail de l'expéditeur ou porte de manière équivalente "data" > "origin" : "OSS" dans le JSON de la transaction, dès qu'un événement intéressant se déclenche, le cadre de rappel transmet la notification à l'écouteur Salesforce, qui est enregistré comme "salesforceOauth2".

Voilà. Grâce au blog d'aujourd'hui, vous devriez être en mesure de récupérer, de valider et de révoquer un jeton de rafraîchissement et de le fournir à OneSpan Sign via l'API de service de rappel. Dans le prochain blog, nous terminerons cette série et vous montrerons un exemple d'intégration à Salesforce, où nous mettrons en œuvre un service Web Apex fonctionnant comme un écouteur de rappel, et testerons l'ensemble du processus d'intégration. Restez à l'écoute !

Si vous avez des questions concernant ce blog ou toute autre question relative à l'intégration de OneSpan Sign dans votre application, visitez les forums de la communauté des développeurs. Vos commentaires sont importants pour nous!

OneSpan Sign Developer Community

OneSpan Sign Developer Community

Rejoignez la communauté OneSpan Sign Developer! Forums, blogs, documentation, téléchargements SDK, et plus encore.

Joignez-vous aujourd'hui