Note : Les points d’extrémité du protocole OpenID Connect sont traités ici : API OpenID Connect : Points d’extrémité.
Points d’extrémité définis par OAuth 2.0
Le point d’extrémité d’autorisation et le point d’extrémité de jeton sont tous deux situés sur le serveur d’autorisation (ce serveur). OAuth Server by DnC y ajoute trois points d’extrémé.
Le point d’extrémité de redirection est situé dans l’application cliente.
Les points d’extrémité sont illustrés dans ce schéma (cas du flux d’Autorisation via un code) :
La spécification OAuth 2.0 ne décrit pas comment l’URI de ces points d’extrémité est définie ni les documente. C’est à chaque développeur de décider. Voici comment OAuth Server by DnC définit les points d’extrémité :
Point d’extrémité d’autorisation (Authorization Endpoint)
https://oa.dnc.global/oauth/authorize.php
Usage : OAuth 2.0 : Obtenir une autorisation pour l’application cliente.
Le point d’extrémité d’autorisation est le point d’extrémité sur le serveur d’autorisation auquel l’utilisateur final se connecte à l’aide de l’user-agent (en général un navigateur Web), et accorde l’autorisation à l’application cliente.
Point d’extrémité de redirection, ou URI de retour à l’application cliente (Redirection Endpoint)
Le point d’extrémité de redirection est le point d’extrémité dans l’application cliente vers lequel le user-agent est redirigé, après avoir obtenu l’autorisation au point d’extrémité d’autorisation. Cet URI est défini par l’auteur d’une application cliente quand il l’inscrit sur ce serveur. Voir : OAuth 2.0 : Lier une application cliente au serveur OAuthSD.
Point d’extrémité de jeton (Token Endpoint)
https://oa.dnc.global/oauth/token.php
Usages : OAuth 2.0 : Obtenir un jeton d’accès, Rafraîchir (actualiser) un jeton d’accès.
Le point d’extrémité de jeton est le point d’extrémité sur le serveur d’autorisation auquel s’adresse l’application cliente avec le code d’autorisation, l’ID client et le secret, pour obtenir un jeton d’accès ou rafraîchir un jeton d’accès ayant expiré.
Points d’extrémité définis par OAuth Server by DnC pour la vérification du jeton d’accès
Point d’extrémité de ressource (Resource Endpoint) [1]
https://oa.dnc.global/oauth/resource.php
Usage : Validation du jeton d’accès par interrogation du point d’extrémité "resource"
Dans l’exemple de flux ci-dessus, l’envoi à l’application cliente d’un jeton d’accès valide lui permet d’être "logged-in". La plupart des sites web et blogs décrivant OAuth ne traitent pas de la validation du jeton d’accès. Ceci veut-il dire que leur approche du protocole se limite à l’authentification des utilisateurs pour l’accès à l’application ?
Cependant, ce n’est pas fini : l’intérêt d’un jeton d’accès réside dans l’usage qui en sera fait par l’application cliente pour signaler à un serveur de ressources protégées qu’elle est autorisée à obtenir des données.
La norme OAuth 2.0 n’indique pas comment les serveurs de données protégées qui reçoivent un jeton d’accès doivent procéder pour le valider, que ce soit localement ou en s’adressant à point d’entrée dédié à sa validation. Cette problématique est exposée ici dans sa généralité : Validation du jeton par une ressource protégée.
OAuth 2.0 Server PHP offre un contrôleur pour la vérification de la validité du jeton d’accès.
Avec OAuth Server by DnC, les serveurs de ressource (Resource API) peuvent accéder au point d’extrémité "resource" pour valider le jeton d’accès reçu et obtenir des informations complémentaires.
OAuth Server by DnC offre également le point d’extrémité suivant :
Point d’extrémité d’introspection (Introspection Endpoint)
https://oa.dnc.global/oauth/introspect.php
Le document RFC 7662 : OAuth 2.0 Token Introspection propose une méthode identique dans le principe et très proche dans la réalisation. Les données retournées sont au format JSON et se rapprochent du contenu d’un JSON Web Token (JWT). OAuthSD adapte également cette spécification à l’introspection (vérification) de l’ID Token fourni par OpenID Connect.
Point d’extrémité de révocation (Revocation Endpoint)
OAuth Server by DnC expose le point de terminaison ’revoke’ pour la révocation d’un jeton :
https://oa.dnc.global/oauth/revoke.php
Usage : Révoquer un jeton.