Documents essentiels
Synthèse : OAuth 2.0
Code : Brent Shaffer’s OAuth Server PHP
Documents de l’IETF
RFC 6749 L’architecture d’authentification OAuth 2.0.
L’architecture d’autorisation OAuth 2.0 permet à une application tierce d’obtenir un accès limité à un service HTTP, soit au nom d’un propriétaire de ressource en orchestrant une interaction d’approbation entre le propriétaire de la ressource et le service HTTP, soit en autorisant l’application tierce à obtenir l’accès en son propre nom.
RFC 7523 JSON Web Token (JWT) Profil pour les soumissions d’authentification et d’autorisation de client OAuth 2.0.
Cette spécification définit l’utilisation d’un JSON Web Token (JWT) Bearer Token comme moyen de demander un jeton d’accès OAuth 2.0 ainsi que pour l’authentification du client.
RFC 7516 JSON Web Encryption (JWE)
JSON Web Encryption (JWE) représente du contenu chiffré basé sur JSON. Les algorithmes cryptographiques et les identificateurs à utiliser avec cette spécification sont décrits dans le document JSON Spécification des Algorithmes Web (JWA) et registres IANA définis par cette spécification. En relation, la signature numérique et les capacités du Code d’Authentification de Message (MAC) sont décrites dans le document séparé Spécification JSON Web Signature (JWS).
RFC 7515 JSON Web Signature (JWS)
JSON Web Signature (JWS) représente du contenu sécurisé par signature numérique ou des codes d’authentification de message (MACs) utilisant des structures de données basées sur JSON. Les algorithmes cryptographiques et les identificateurs à utiliser avec cette spécification sont décrits dans le document JSON Web Algorithmes (JWA) et un registre IANA défini par la spécification. Les capacités de cryptage associées sont décrites par la spécification distincte JSON Web Encryption (JWE).
RFC 7662 OAuth 2.0 Token Introspection
Cette spécification définit une méthode permettant à une ressource protégée d’interroger un serveur d’autorisation OAuth 2.0 pour déterminer l’état actif d’un jeton OAuth 2.0 et pour déterminer des méta-informations sur ce jeton.
Les déploiements OAuth 2.0 peuvent utiliser cette méthode pour transmettre à la ressource protégée des informations sur le contexte d’autorisation du jeton à partir du serveur d’autorisation.
RFC 7009 OAuth 2.0 Token Revocation.
Ce document propose un point d’extrémité supplémentaire pour le serveur d’autorisation OAuth, qui permet aux clients d’avertir le serveur d’autorisation qu’un jeton de rafraîchissement ou d’accès précédemment obtenu n’est plus nécessaire. Cela permet au serveur d’autorisation de nettoyer les données de sécurité. Une demande de révocation invalidera le jeton en question et, le cas échéant, d’autres jetons basés sur la même autorisation.
OpenID Connect
La référence : OpenID Connect.
OpenID Connect Core 1.0 incorporating errata set 1
OpenID Connect 1.0 est une couche d’identité simple fondée sur le protocole OAuth 2.0. Il permet aux clients de vérifier l’identité de l’utilisateur final en fonction de l’authentification effectuée par un serveur d’autorisation, ainsi que d’obtenir des informations de profil de base sur l’utilisateur final de manière interopérable et REST.
Cette spécification définit la fonctionnalité de base OpenID Connect : authentification construite sur OAuth 2.0 et l’utilisation de déclarations (claims) pour communiquer des informations sur l’utilisateur final. Il décrit également les considérations de sécurité et de confidentialité pour l’utilisation d’OpenID Connect.
OpenID Connect Basic Client Implementer’s Guide 1.0 - draft 37
OpenID Connect 1.0 est une couche d’identité simple fondée sur le protocole OAuth 2.0. Il permet aux clients de vérifier l’identité de l’utilisateur final en fonction de l’authentification effectuée par un serveur d’autorisation, ainsi que d’obtenir des informations de profil de base sur l’utilisateur final de manière interopérable et REST.
Ce Guide d’implémentation OpenID Connect Basic Client 1.0 contient un sous-ensemble de la spécification OpenID Connect Core 1.0 conçue pour être facile à lire et à implémenter pour les échanges entre applications Web basés sur le flux d’autorisation OAuth. Ce document double intentionnellement le contenu de la spécification Core pour fournir un guide d’implémentation autonome pour des développements d’applications Web élémentaires utilisant le flux de code d’autorisation OAuth.
Les fournisseurs OpenID et les applications non Web doivent plutôt consulter la spécification Core.
Documents de Microsoft Exchange
Exchange 2013 utilise un jeton JWT (JSON Web Token) pour le jeton d’identité. La documentation technique d’Exchange appelle "Jeton d’identité" quelque chose de très similaire à l’ID Token défini par OpenID Connect. Il est donc intéressant de consulter les documents suivants :