IdentityServer prend en charge différents flux OpenId Connect définis dans l'énumération Flows et définis pour les clients. Il y a aussi des exemples pour chaque type de flux et de nombreuses références à eux dans la documentation, mais je n'ai pas pu trouver une liste de définition simple de ce que les flux sont dans documentation comme s'ils étaient trop évidents pour être expliqués par des mots. Mais je suppose que non. Pouvez-vous s'il vous plaît en dire plus sur les différences de ceux-ci, peut-être pouvons-nous ajouter cela aux documents?
Alors, quels sont: flux implicite , mot de passe du propriétaire de la ressource flux, code d'autorisation flux, informations d'identification client flux, flux personnalisé et flux hybride ? Quels sont également les flux OAuth et ceux qui sont des flux OpenID Connect?
Merci!
J'ai fait face au même problème, actuellement le travail est toujours en cours. quand j'aurai fini la documentation, je pourrais la poster ici. pour le moment: veuillez vérifier le projet:
Enrichir la documentation IdentityServer avec OIDC et OAuth2 Flows section # 7
Mise à jour: flux OIDC et OAuth2
Du premier lien de lessPrivilage: et Aharon Paretzki OAuth 2 simplifié
Les flux décident de la façon dont le jeton ID (c'est-à-dire le code d'autorisation) et le Jeton d'accès (c'est-à-dire 'le jeton') sont retournés au client:
Flux de code d'autorisation : OAuth 2.0 flux dans lequel
Flux implicite : OAuth 2.0 flux dans lequel
Flux hybride : OAuth 2.0 flux dans lequel
voir les spécifications - tout a déjà été écrit:
http://openid.net/specs/openid-connect-core-1_0.html et http://tools.ietf.org/html/rfc6749
en plus j'ai récemment écrit un résumé qui le décompose pour différents types d'application:
http://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/
Les flux définis dans OAuth2 ne sont que plusieurs façons pour un client de recevoir un access token
à partir d'un serveur fournisseur d'identité; le IdentityServer
dans ce cas. Comprendre les flux ne sera facile que si vous comprenez parfaitement les entités spécifiées dans les diagrammes de flux tels que Resource Owner
, User Agent
, et Resource Server
. Il y a quelques brèves explications sur ces entités (rôles, précieusement) dans ici .
Flux de code d'autorisation : émet un authorization code
avant d'émettre un access token
.
authorization code.
authorization code
.access token
avec le authorization code
access token
directement au client. Flux de code implicite : émet un access token
même sans authorization code
à condition de.
access token
directement.access token
authorization code
. Le flux implicite est considéré comme le flux idéal pour un client utilisant des langages de script comme javascript
car le client n'a pas à demander un authorization code
Et un access token
séparément, réduisant ainsi un aller-retour réseau pour le client.
Flux d'informations d'identification du client : émet un access token
sans l'autorisation d'un propriétaire de ressource.
access token
tout de suite.Ceci est idéal lorsque le client est également un propriétaire de ressource, il n'a donc pas besoin d'autorisations d'autorisation jusqu'à access token
.
Flux du propriétaire de la ressource : émet un access token
si un client possède les informations d'identification du propriétaire de la ressource (par exemple, Id/Password)
access token
directement.access token
instantanément.Ce flux est idéal pour les clients que vous pensez qu'il est absolument sûr de partager les identifiants et les mots de passe avec eux.
Flux hybride (flux OIDC) : émet un authorization code
Et un access token
.
Il s'agit d'une combinaison de Authorization code flow
et Implicit code flow
. C'est pourquoi cela s'appelle Hybrid
.
Flux personnalisé
Il s'agit littéralement d'un flux personnalisable. Cela peut être utilisé lorsque vous avez besoin d'un processus d'authentification/validation spécifique dans votre entreprise à côté de toutes les spécifications de protocole dans OAuth2
.
IdentityServer est bien conscient de ce genre de situation et prend en charge les extensibilités par conception. Le modèle d'usine, le modèle de décorateur et l'IoC/DI vous faciliteront la mise en œuvre de fonctionnalités supplémentaires sur votre IdentityServer.