Le protocole OAuth permet aux applications de s'authentifier auprès des services

  • Pierce Henry
  • 0
  • 712
  • 147

Sur un projet récent, je devais utiliser un service utilisant OAuth pour l'authentification. J'avais entendu parler d'OAuth, mais je n'avais pas utilisé le protocole relativement nouveau. J'ai pu atteindre mes objectifs sans avoir à programmer directement les spécifications OAuth, mais j'ai décidé de creuser un peu plus pour en apprendre davantage sur le courage du protocole..

Un aperçu de OAuth

OAuth est conçu pour permettre à un utilisateur d'une application de travailler avec les données d'un service sans avoir à fournir à cette application les informations d'identification du service. Le grand concept derrière OAuth est qu’il utilise des jetons pour permettre aux applications de s’authentifier auprès des services. Lorsqu'une application souhaite travailler avec un service, elle demande un jeton au service. Ce jeton est initialement inutile, c'est-à-dire qu'il ne peut pas être utilisé pour l'authentification. Au lieu de cela, l'application demande à l'utilisateur d'aller au service (en coulisse, il transmet des données dans le lien ou redirige vers le jeton); Lorsque l'utilisateur y arrive, il se connecte avec ses informations d'identification pré-établies. Cela transforme le jeton que l'application a reçu en un jeton autorisé, ce qui lui permet d'être utilisé pour l'authentification. Cette authentification s'appelle l'authentification à trois branches car elle implique trois acteurs: l'application, l'utilisateur et le service. Il existe également une authentification à deux branches entre une application et le service, qui ne nécessite aucune intervention de l'utilisateur..

Le fonctionnement du protocole est bien plus complexe que ce que j'ai décrit dans cette brève introduction. pour plus de détails, consultez le site Web OAuth et lisez les excellents articles sur OAuth sur hueniverse.

Ressources OAuth et exemples de code

Au départ, j'écrivais tout le code d'accès moi-même, mais j'ai appris que la bibliothèque RestSharp prend en charge OAuth. Si votre plan est de travailler avec un service de style REST, c'est votre meilleur pari. RestSharp est une excellente bibliothèque pour travailler avec les services REST et facilite leur gestion..

Pour ce sur quoi je travaillais, je ne pouvais pas utiliser RestSharp en raison des structures de classe impliquées. En outre, le service auquel j'intégraisais comportait déjà un exemple de code exceptionnel qui nécessitait peu de modifications pour répondre à mes besoins - il s'agissait davantage d'une routine, "écrivez beaucoup de LINQ-to-XML pour renseigner des variables". Ce code utilisait la bibliothèque DevDefined OAuth avec quelques modifications.

Si vous souhaitez voir un exemple de code qui m’a été très utile, ainsi qu’un bon tutoriel vidéo illustrant le fonctionnement pratique de l’authentification à trois pieds, consultez la documentation pour les développeurs Xero. Xero propose également des exemples de code et des didacticiels illustrant l'utilisation réelle d'OAuth..

Résumé

OAuth peut sembler complexe lorsque vous examinez les spécifications et les détails, mais en réalité, ce n'est pas mal du tout. Il donne aux services tous les choix du monde pour décider de la manière de gérer l'authentification auprès de l'utilisateur final. Le gros avantage de l'utilisation de OAuth est que l'application consommatrice n'a pas besoin de connaître les informations d'identification de l'utilisateur, ce qui élimine des problèmes entiers en matière de sécurité..

J'ai l'impression que OAuth va devenir plus populaire à l'avenir, car de plus en plus de services offrent des interfaces non SOAP. Un exemple, par exemple, qui utilise OAuth est le DataMarket de la plateforme Windows Azure, et d'autres sont à venir..

J.Ja




Personne n'a encore commenté ce post.

Des astuces, des informations utiles et les dernières nouvelles du monde de la technologie!
Informations utiles et actualités technologiques du monde entier. Critiques vidéo de téléphones, tablettes et ordinateurs.