OpenID — Wikipédia

Logo

OpenID est un système d’authentification décentralisé qui permet l’authentification unique, ainsi que le partage d’attributs. Il permet à un utilisateur de s’authentifier auprès de plusieurs sites (devant prendre en charge cette technologie) sans avoir à retenir un identifiant pour chacun d’eux mais en utilisant à chaque fois un unique identifiant OpenID. Le modèle se base sur des liens de confiance préalablement établis entre les fournisseurs de services et les fournisseurs d’identité (OpenID providers). Il permet aussi d’éviter de remplir à chaque fois un nouveau formulaire en réutilisant les informations déjà disponibles. Ce système permet à un utilisateur d'utiliser un mécanisme d'authentification forte[1].

OpenID est adopté par Yahoo (), MySpace (), Dailymotion (du au ), Facebook (), et par le gouvernement américain pour l'administration en ligne ()[2].

Le , la fondation OpenID a annoncé qu’IBM, Microsoft, Google, Yahoo et Verisign rejoignaient son conseil d’administration[3].

Le , la société Microsoft a annoncé une nouvelle plate-forme — de nom de code « Geneva » — qui permet de se reposer sur le mécanisme OpenID[4].

OpenID permet, à partir de 2010, aux utilisateurs munis d'un compte Yahoo de se connecter à un compte Google pour utiliser ses services en ligne via la Yahoo OpenID API. Il s'agit du premier cas d'intégration d'OpenID par Google[5]. À partir de 2011, alors qu'OpenID est utilisé par 50 000 sites internet, le service commence à être sévèrement critiqué, comparé à un standard vulnérable tel que XML ou atom. L'abandon du service par 37Signals est symbolique. L'arrivée en puissance de Facebook Connect (avec lequel les données utilisateur sont partagées) contribue à la perte de vitesse d'OpenID. OpenID réagit avec le lancement d'OpenID Connect, mais cela ne lui a pas permis de revenir dans la course[6].

La Fondation OpenID (OIDF)

[modifier | modifier le code]

La Fondation OpenID (OIDF aux États-Unis) gère et organise l’ensemble de la communauté OpenID. Il s’agit d’une « organisation à but non lucratif » créée en , basée dans l’Oregon et constituée d’un conseil de direction de 8 membres. En 2021, son président est Nat Sakimura[7].

Entreprises

[modifier | modifier le code]

Depuis sa création de nombreuses entreprises ont rejoint la fondation[8] :

Autres Fondations

[modifier | modifier le code]
  • Belgique : OpenID Belgique

Il s’agit d’une organisation internationale à but non lucratif (AISBL, Association Internationale Sans But Lucratif, selon la loi belge) dont la mission est de soutenir et d’organiser le développement du modèle OpenID en Belgique et partout en Europe.

  • Suisse : OpenID Switzerland

OpenID Switzerland[9], fondée le à Zurich, est une association[10] à but non lucratif.

  • membres dirigeants : Robert Ott (Vice-president) et David Reindl (Secretary)
  • représentants : Robert Ott (Swiss German Area Delegate), Sylvain Maret (Swiss French Area Delegate) et Andrea Chiodoni (Svizzera di Lingua Italiana)

Propriété intellectuelle

[modifier | modifier le code]

En France, la marque OpenID est protégée à l’INPI sous le no  National EM005796412[11].

Fonctionnement

[modifier | modifier le code]
Authentification OpenID.

Le fonctionnement du protocole OpenID distingue plusieurs acteurs.

  • L’utilisateur est la personne qui — par le biais d’un logiciel client comme un navigateur web — souhaite s’identifier à un service.
  • Le fournisseur de service (en abrégé, RP, pour Relying Party) exige une preuve de l’identité de l’utilisateur. C’est un site web, un service web
  • Le fournisseur d’identité (OpenID Provider, ou OP, ou IdP, ou IP ou juste provider) est un serveur d’authentification OpenID qui est contacté par le service pour obtenir une preuve de l’identité de l’utilisateur.

Création d’un compte

[modifier | modifier le code]

Chaque utilisateur est identifié par une URI, qu’il acquiert auprès de son fournisseur d’identité OpenID. Le mode de fonctionnement est le suivant :

  • L’utilisateur choisit un fournisseur d’identité, par exemple VeriSign (nom du serveur : pip.verisignlabs.com).
  • L’utilisateur choisit un nom d’utilisateur (x pour l’exemple), un mot de passe, et crée son compte. L’utilisateur peut renseigner certaines informations le concernant. Ce compte aura pour identifiant OpenID x.pip.verisignlabs.com. Le profil de l’utilisateur est également disponible à cette adresse.

Utilisation d’un compte

[modifier | modifier le code]

Le mode de fonctionnement est le suivant :

  • L’utilisateur x désire, par exemple, accéder au service UnServiceWeb qui requiert que l’utilisateur soit authentifié.
  • L’utilisateur entre son identifiant : x.sous.domaine.com.
  • Le fournisseur de service (UnServiceWeb dans notre cas) contacte le fournisseur d'identité et ils créent ensemble un secret partagé.
  • L’utilisateur est redirigé vers le site du fournisseur d'identité et entre son mot de passe pour s’authentifier.
  • L’utilisateur est alors averti que UnServiceWeb souhaite avoir accès à certains attributs de son profil OpenID (par exemple, son nom, prénom, et son adresse de courriel), et accepte ou non cette demande.
  • L’utilisateur est redirigé vers le fournisseur de service avec une preuve cryptographique de son identité (créée grâce au secret partagé préalablement établi) fournie par le fournisseur d'identité et est authentifié.

Tant que la session de l’utilisateur est active, il pourra être reconnu automatiquement sur les autres sites utilisant OpenID grâce au mécanisme de l’authentification unique.

Implémentation

[modifier | modifier le code]

Clients OpenID

[modifier | modifier le code]
  • Java : OpenID4Java
  • .NET : DotNetOpenAuth (client et serveur)
  • Perl : Net::OpenID::Consumer[12]
  • PHP : OpenID library
  • Python : OpenID library (ainsi que plone.openid pour Zope)
  • Ruby : OpenID library

Extensions OpenID pour les serveurs web

[modifier | modifier le code]
  • Java : NetMeshInfoGrid LID
  • NET : DotNetOpenAuth (client et serveur)
  • Perl : Net::OpenID::Server[13]
  • PHP : openid, NetMeshInfoGrid LID, phpMyID, Clamshell, SimpleID
  • Python : DjangoID, PyBlosxom
  • Ruby : HeraldryPIP
  • Apache : HTTPD Apache Mod_OpenID
  • Node.js : oidc-provider

Fournisseur d'identité - IDP

[modifier | modifier le code]

Une liste de serveurs permettant de créer un compte OpenID se trouve sur le wiki d’OpenID. Parmi ceux-ci :

  • GetMyOpenID.com
  • GetOpenID.com (arrêté le )
  • Google (qui cependant n'accepte plus OpenID 2.0, pourtant encore utilisé par nombre de sites ; Google demande de changer de fournisseur ou d’adopter un protocole plus sécurisé supportant l'authentification en deux étapes de type OTP : OpenID 2.0 doit être remplacé par OpenID Connect mais Google ne fournit plus cette identité lui-même)
  • Launchpad et Ubuntu (services fusionnés avec une identification unique)
  • MyID.net (arrêté en 2013)
  • openid.labsfr.fr
  • Orange
  • OpenIdissimo
  • VeriSign
  • Yahoo

Sécurité des identités numériques

[modifier | modifier le code]

OpenID peut être couplé à un système d'authentification forte. Cela assure une meilleure protection contre l'usurpation d’identité numérique.

Le système OpenID permet de se connecter à un service A avec un compte B, mais pas de se créer un compte au service A avec un compte B. Par exemple, Google laisse les utilisateurs se connecter à ses services avec un compte Yahoo, mais ne crée pas d'identifiants et de compte central Google pour ces utilisateurs externes[14]. Pour certains propriétaires de sites, cela signifie que des utilisateurs quasi-anonymes peuvent utiliser leurs sites via OpenID[6].

La fiabilité du service a également été remise en question au niveau du besoin de fournir un mot-de-passe d'un compte sur un site tierce. Par exemple, lorsqu'un utilisateur Yahoo veut se connecter à Google, c'est Google qui prend en charge l'ouverture du formulaire de connexion à Yahoo. Ce scénario peut mener à de nombreuses dérives par hameçonnage[14].

En 2014, un développeur découvre une faille de sécurité qui permet d'envoyer du code arbitraire sur les serveurs de Facebook en manipulant la fonctionnalité de connexion OpenID[15].

  1. Strong authentication and single sign-on for mobile apps with OpenID Connect ()
  2. (en) OpenID and Open Government.
  3. (en) Evolving the OpenID Foundation Board sur le site openid.net
  4. (en) Annonce sur le site NetworkWorld « Copie archivée » (version du sur Internet Archive).
  5. (en-US) Michael Calore, « Yahoo Users Can Now Open a Google Account With OpenID », Wired,‎ (ISSN 1059-1028, lire en ligne, consulté le )
  6. a et b (en-US) Scott Gilbertson, « OpenID: The Web's Most Successful Failure », Wired,‎ (ISSN 1059-1028, lire en ligne, consulté le )
  7. (en-US) « Leadership | OpenID », (consulté le )
  8. (en) Microsoft News, « Technology Leaders Join OpenID Foundation », sur microsoft.com,
  9. OpenID Switzerland
  10. OpenID Schweiz association
  11. https://data.inpi.fr/marques/EM005796412?q=openid#EM005796412.
  12. (en) « Net :  : OpenID :  : Consumer », sur metacpan.org (consulté le ).
  13. (en) « Net :  : OpenID :  : Server », sur metacpan.org (consulté le ).
  14. a et b (en-US) Randall Stross, « Goodbye, Passwords. You Aren’t a Good Defense. », The New York Times,‎ (lire en ligne)
  15. (en) Mohit Kumar, « Facebook Hacker received $33,500 reward for Remote code execution vulnerability », sur The Hacker News, (consulté le )

Liens externes

[modifier | modifier le code]