Cette rubrique s’adresse aux développeurs désireux d’utiliser OAuth Server byDnC pour leur applications.

Synthèse des flux d’autorisation (Grant Type) d’OpenID Connect

  publie le par DnC

Les tableaux de cet article synthétisent les flux offerts par OpenID Connect et la couche sous-jacente OAuth 2.0. Il permet de naviguer vers les têtes de chapitres correspondantes de la documentation.

Les fonctionnalités d’OAuth 2.0 sont intégrées au protocole OpenID Connect. Toutes les fonctionnalités d’OAuth 2.0 et de OpenID Connect peuvent donc être atteintes par les Points d’extrémité d’OpenID Connect [1].


1. Requêtes adressées au point d’extrémité authorize. Les différentes valeurs du paramètre response_type (obligatoire) et du scope openid (facultatif) déterminent les flux d’autorisation (Grant Type) suivants :

Grant Type response_type openid Rem.
OAuth 2.0 Authorization Code code N RFC 6749
OIDC Authorization Code code Y
Implicit id_token token Y OpenID Connect Implicit Client
 ? token X [2]  [3]
Hybrid code id_token Y c_hash required
Hybrid code token X Invalid [4]
Hybrid code id_token token Y Invalid [5]

Références :
- The OAuth 2.0 Authorization Framework.
- OpenID Connect Core 1.0 incorporating errata set 1 : Authentication using the Hybrid Flow.


2. Requêtes adressées directement au point d’extrémité token. Ces flux ne sont définis que par OAuth 2.0 et ne retournent pas de jeton d’identité, que le scope openid soit indiqué ou non.

Grant Type grant_type Access Token Refresh Token Rem.
Client Credentials client_credentials Y Y
User Credentials [6] password Y N
JWT Bearer - Y N  [7]

References :
- RFC 6749 Client Credentials Grant,
- Spécification draft-ietf-oauth-jwt-bearer-07 section 1

Notes

[1Même si les points de terminaison de OAuth 2.0 peuvent être adressés spécifiquement sur le serveur OAuthSD aux URLs https://oa.dnc.global/oauth/...

[2Que le scope openid soit fourni ou non, ce flux Implicite ne retourne pas de jeton d’Identité.

[3Flux non identifié de type Implicit auquel répond le serveur.

[4Non encore implémenté dans l’état actuel du développement de la librairie OAuth 2.0 Server PHP.

[5Comme ci-dessus.

[6Ou "Resource Owner Password Credentials Grant Type". Nous citons ce flux, et OAuthSD le met en oeuvre, uniquement par souci de complétude. Ce flux ne doit pas être considéré comme une authentification ; au contraire, l’utilisation de ce flux conduit à une impersonnisation (sur ce sujet, voir : https://www.scottbrady91.com/OAuth/..., nous recommendons donc de ne pas l’utiliser.

[7Cela ressemble beaucoup à l’échange de jeton décrit ici : Un jeton d’identification peut être utilisé pour ... et par cette proposition de standard : Draft IETF : Token Exchange.

Documentation d’OAuthSD pour les développeurs

  publie le par DnC

Pour aborder OAuthSD, vous n’avez pas besoin de connaissances préalables sur le protocole OAuth, toutes les explications nécessaires et des discussions utiles figurent dans cette documentation, ainsi que des références précises et des exemples de code.

Au sommaire :

- Sujets communs à Oauth 2 et OpenID Connect : Généralités et points communs à OAuth 2.0 et à OpenID Connect et autres sujets relatifs à la sécurité des applications distribuées dans le Cloud.

- OAuth 2.0 : Documentation de OAuth 2.0 : principe, discussion, mise en œuvre, exemples de code, extensions de OAuthSD. OAuth est la base sur laquelle sont construits de nombreux protocoles, parmi lesquels OpenID Connect. La plupart du vocabulaire et des concepts sont applicables ou peuvent facilement être extrapolés.

- OpenID Connect : Documentation de OpenID Connect (vous n’êtes pas obligé de lire d’abord celle de OAuth).

- JSON Web Token (JWT) : Le jeton JWT transporte des informations sur l’application cliente, l’utilisateur final et l’étendue de l’autorisation (scope). Il est le mieux mis en oeuvre par OpenID Connect (s’agissant d’identification, laissons donc OAuth de côté).

- OAuthSD : sujets avancés : inscription unique (Single Sign ON, SSO), connexion unique (Single Login Identification, SLI) sur de multiples applications, la ré-authentification silencieuse (Silent Re-Authentication, SRA) et la déconnexion unique (Single Login Out, SLO).

- Ressources pour les développeurs : des plugins et du code développés par DnC pour ajouter aux applications l’identification avec OpenID Connect, et plus encore ...

- Techniques et code du serveur OAuthSD (en cours de rédaction).

Pour entrer rapidement dans le sujet, voyez :
- Exemples complets du flux d’Autorisation.
- OpenID Connect : Lier une application cliente au serveur OAuthSD,
- OAuth 2.0 : Autorisation de serveur à serveur, exemple complet,
- Synthèse des flux d’autorisation (Grant Type) d’OpenID Connect.