L’identité numérique ?
L’identité numérique d’une personne constitue une série d’attributs qui va la caractériser. On peut prendre comme exemple, les caractéristiques physiques d’un individu (couleurs des cheveux, des yeux ou bien la couleur de la peau), ses qualifications, son lieu de naissance ou bien son appartenance politique. Toutes ces informations vont permettre d’identifier une personne en ligne.
Heureusement pour nous, ces informations ne sont pas détenues par une seule entité. Aucun service en ligne ne va connaître l’ensemble des attributs d’identité d’une personne. L’information est dispatchée à travers tous les services que l’on peut utiliser sur Internet.
Avec l’augmentation de l’utilisation des services web et mobile, l’utilisation de l’identité numérique ne fait qu’augmenter. Une même personne peut avoir une multitude d’identités différentes. Toutes ces identités vont vouloir utiliser des services différents et potentiellement communiquer entre eux pour se partager des informations.
Une personne peut être membre d’un ou plusieurs réseaux sociaux. Elle aura besoin de pouvoir ajouter les contacts de sa boîte mail ou de son téléphone. Elle peut aussi être cliente d’une banque. La personne aura besoin de voir le solde de son compte, de transférer de l’argent. Cette même personne, peut être citoyenne d’un pays et vouloir déclarer ces impôts sur le web ou sur une application mobile.
C’est autant d’organisations différentes qui vont alors communiquer entre eux pour partager des informations sur l’utilisateur.
On peut ainsi se demander. Comment les services vont pouvoir communiquer entre eux ? Comment ils vont pouvoir se partager des informations sur un utilisateur et tout cela en toute sécurité.
Il faut construire un système qui simplifie la gestion des différentes identités numériques d’un utilisateur, lui éviter de dupliquer ces informations. Données qu’il a potentiellement renseignées auprès d’un autre service. Par exemple, un utilisateur qui a un compte sur un réseau social et qui souhaite importer ces contacts venant d’un autre réseau. Comment peut-il importer ces contacts sans avoir à les ajouter un par un ?
Pour répondre à ce besoin et afin de créer une uniformisation sur la façon de communiquer entre les différents services, des protocoles ouverts comme SAML ou OAuth ont été créés. Ces protocoles n’appartiennent à aucune entreprise en particulier. Ce sont des normes à suivre.
Les plus connus sont :
- SAML (Security Assertion Markup Language) : permet à l’utilisateur de s’authentifier une fois (sign-on) et de pouvoir accéder à plusieurs ressources. Ce protocole est très répandu et a permis notamment la gestion centralisée des utilisateurs.
- OAuth2.0 : permet à un utilisateur d’autoriser une application à accéder à des ressources d’un autre service.
- OIDC (Open ID Connect) : basé sur OAuth2.0 permet de pouvoir authentifier un utilisateur.
- JWT (JSON Web Token) : permet l’échange sécurisé de tokens entre plusieurs services.
Ces standards ont pour but de définir :
- le rôle des différentes applications et providers
- comment les rôles vont interagir entre eux. Et surtout communiquer des attributs d’identité et de ressources en toute sécurité.
Prenons le standard OAuth2 et essayons de comprendre comment il marche.
Exemple : on a notre utilisateur Emma, qui vient de créer un compte sur le réseau professionnel LinkedIn. Elle souhaite importer ces contacts via son compte Gmail. Pour cela, LinkedIn va utiliser le protocole OAuth 2 pour pouvoir demander une autorisation afin d’accéder à ces contacts Gmail.
Emma, va se connecter à LinkedIn qui va lui proposer d’importer ces contacts Gmail. Après avoir autorisé LinkedIn à accéder à ces contacts. Gmail va ensuite donner accès à la ressource pour que LinkedIn puisse l’afficher à Emma.
La notion de permission qui va représenter le fait d’autoriser un service (ici LinkedIn) à accéder à une partie des ressources Gmail (les contacts). La permission donnée par l’utilisateur n’est pas un accès total. Dans cet exemple, la plateforme LinkedIn accède à votre liste de contacts Gmail, mais pas à leurs emails
Comme lors d’une location de vacances, vous n’avez pas accès à toute la maison. Seulement aux parties dont on vous a autorisé l’accès. Vous pouvez profiter du salon, des WC, des chambres, de la terrasse. Vous n’aurez pas accès à la cave et à certaines pièces privés.
Le flow OAuth2 peut paraître simple dit comme cela, mais c’est un peu plus complexe que cela. Nous allons voir en détail le flow de communication entre Emma, l’application LinkedIn et l’application Gmail dans l’article sur le protocole OAuth2.