L’un des problèmes les plus difficiles à résoudre lorsque l’on utilise le CIBA pour dissocier l’authentification est d’identifier le bon utilisateur. Dans un modèle de redirection, le prestataire n’a même pas besoin de connaître l’identité de l’utilisateur à la banque ; cette étape d’identification est prise en charge directement par le site de la banque après la première redirection. Dans un flux dissocié, cela est impossible, car l’utilisateur n’est jamais redirigé. Au lieu de cela, le prestataire doit faire quelque chose pour prouver à la banque l’identité de l’acheteur. Étant donné que sa vie privée devrait être aussi protégée que possible, le fait de lui demander de saisir simplement son identifiant bancaire ne constitue peut-être pas la meilleure approche !
Les trois scénarios ci-dessous montrent qu’il existe des options alternatives. Dans chaque cas, je commencerai par une courte vidéo présentant le parcours que notre acheteur mystère (à l’instar de n’importe quel titulaire d’un compte chez AnyBank), Angela, réalisera en achetant un appareil sportif sur le site web Limitless Ambition. Je détaillerai ensuite chaque flux, en essayant de ne pas employer de termes trop techniques.
Option 1 : régler avec un identifiant utilisateur à usage unique
Nous commençons par un scénario dans lequel l’acheteuse, Angela, n’a jamais utilisé son compte AnyBank pour faire un achat sur le site Limitless Ambition. Dans ce cas, elle utilise un identifiant utilisateur à usage unique généré spécialement pour lancer la procédure. Cet identifiant utilisateur à usage unique est généré par son appli mobile AnyBank, en utilisant un processus sécurisé entre l’appli et le back-end d’AnyBank. L’identifiant utilisateur à usage unique est associé au compte d’Angela et ne peut être utilisé qu’une seule fois ; c’est à l’infrastructure de back-end de la banque d’associer cet identifiant à l’identité réelle d’Angela.
Angela peut communiquer en toute sécurité cet identifiant directement à Limitless Ambition, et lorsque le site web lance le flux de dissociation de l’authentification avec CIBA pour approuver le paiement, l’identifiant utilisateur à usage unique est envoyé au Fournisseur OpenID d’AnyBank en qualité d’indice de connexion. AnyBank utilise PingFederate, qui lui permet de déréférencer l’identifiant utilisateur à usage unique pour déterminer le nom de l’utilisateur réel par le biais d’un simple appel API, avant d’utiliser le SDK PingID pour envoyer le message d’approbation du paiement vers le bon téléphone portable.
Ce schéma n’offre pas nécessairement la meilleure expérience utilisateur sur un site web, car il est nécessaire de générer puis de saisir un identifiant utilisateur à usage unique. Si Angela réalisait un paiement sur l’appareil d’un point de vente, par exemple dans un kiosque en magasin, cela pourrait toutefois être bien plus utile. Dans ce cas, l’appli AnyBank afficherait l’identifiant utilisateur à usage unique sous la forme d’un code QR, que le kiosque pourrait scanner, au lieu de devoir taper quelque chose.
Option 2: régler avec un code QR
Une alternative à l’approche ci-dessus commence avec la même condition préalable : Angela n’a encore jamais utilisé son compte AnyBank pour faire un achat sur le site Limitless Ambition. Dans ce cas, toutefois, Limitless Ambition générera une référence unique pour la transaction de paiement et utilisera cette valeur à titre d'indice de connexion envoyé à AnyBank dans le cadre de l’appel CIBA. (Ceux qui connaissent les flux de paiement de l’Open Banking réaliseront certainement que le marchand pourrait utiliser l’identifiant d'intention que la banque envoie après le paiement en qualité d’identifiant unique et prêt à l’emploi pour cette utilisation).
Dans ce cas, Limitless Ambition codifie la référence unique sous la forme d’un code QR pouvant être scanné et l’affiche sur sa page web. Angela doit scanner ce code depuis l’appli mobile AnyBank pour approuver le paiement et terminer sa commande.
Ce qui rend ce flux un peu inhabituel est le fait que le marchand (Limitless Ambition) ne peut pas fournir d’indice de connexion à AnyBank pour identifier l’utilisateur. L’indice de connexion est simplement une référence connue des deux parties, c’est à AnyBank de « déterminer » de quel utilisateur il s’agit. En scannant le code QR avec son appli mobile, Angela peut effectuer la transaction. Et, étant donné que son appli mobile connaît son identité et détient aussi la référence unique, elle peut passer un appel sécurisé au back-end d’AnyBank pour associer son identité à la référence de cette transaction, obtenir des informations supplémentaires sur le paiement et avoir son consentement ainsi que son approbation avant qu’AnyBank n’émette les jetons appropriés au marchand.
Option 3 : utiliser un jeton d’identité déjà enregistré
La troisième option est la plus fluide de toutes pour l’acheteur, mais elle débute par une hypothèse différente. Dans ce cas, Angela a déjà utilisé son compte AnyBank pour faire un achat sur le site Limitless Ambition, probablement en utilisant les flux ci-dessus, ou bien un processus antérieur basé sur les redirections. Nous pouvons supposer que Limitless Ambition a conservé le jeton d’identité reçu par AnyBank pendant ce processus et l’a stocké en toute sécurité dans son propre annuaire de back-end, en l’associant au compte Limitless Ambition d’Angela.
Désormais, chaque fois qu’Angela souhaitera faire un achat sur le site, Limitless Ambition pourra lancer directement une authentification dissociée, en transmettant ce jeton enregistré à titre d'indice de jeton d’identification, comme décrit dans les caractéristiques CIBA.
Le fournisseur OpenID d'AnyBank, optimisé par PingFederate, est capable d’extraire suffisamment d’informations à partir de cet ancien jeton d’identité et de déterminer qu’Angela est l’utilisateur, même lorsque le jeton d’identité ne contient pas réellement son nom d’utilisateur. PingFederate utilise alors le SDK PingID pour envoyer un message détaillé d’approbation de la transaction à l’appareil mobile d’Angela, sans qu’elle ait besoin de faire quoi que ce soit d’autre.
Vous pouvez noter que dans tous ces cas, Limitless Ambition garde le contrôle total de toute l’expérience utilisateur sans devoir à aucun moment rediriger le navigateur d’Angela vers d’autres pages extérieures à son site Web.