L'identité du Serveur 4 Code d'Autorisation de Flux exemple
Je suis en train de mettre en œuvre l'Identité du Serveur 4 avec le Réseau de Base à l'aide du Code d'Autorisation de Flux.
La chose est, la IdentityServer4 référentiel github ont plusieurs échantillons, mais aucun avec Code d'Autorisation de Flux de.
Quelqu'un a un exemple sur la façon de mettre en œuvre Code d'Autorisation de Flux de avec l'Identité du Serveur 4 et un Client dans le MVC de les consommer?
Vous devez vous connecter pour publier un commentaire.
Voici une mise en œuvre d'un Code d'Autorisation de Débit avec l'Identité du Serveur 4 et d'un MVC client pour en consommer.
IdentityServer4 pouvez utiliser un client.cs fichier pour enregistrer nos MVC client, il est ClientId, ClientSecret, autorisés les types de subventions (Code d'Autorisation dans ce cas), et la RedirectUri de notre client:
Cette classe est référencé dans la ConfigurationServices méthode de Démarrage.cs dans le IdentityServer4 projet:
Pour référence, voici les Utilisateurs et les Étendues de classes référencées ci-dessus:
La MVC de l'application nécessite deux méthodes de contrôleur. La première méthode commencera le Fournisseur de Service (SP-Initiés) de flux de travail. Il crée un État de la valeur, l'enregistre dans le cookie d'authentification basée sur les middleware, puis redirige le navigateur vers le IdentityProvider (IdP) - notre IdentityServer4 projet dans ce cas.
Pour référence, voici les constantes et SaveState méthode utilisée ci-dessus:
La deuxième MVC action méthode est appelée par IdenityServer4 après que l'utilisateur saisit ses informations d'identification et vérifie tout d'autorisation de boîtes. La méthode d'action:
Voici la méthode:
De vérifier que l'État a reçu est ce que vous attendiez aide à se défendre contre les attaques de type CSRF: http://www.twobotechnologies.com/blog/2014/02/importance-of-state-in-oauth2.html
Ce ValidateStateAsync méthode permet de comparer les reçus de l'Etat à ce qui a été enregistré désactiver le cookie de middleware:
Ce ValidateToken méthode utilise le Système Microsoft.IdentityModel et du Système.IdentityModel.Jetons.Jwt bibliothèques de vérifier que JWT est bien signé.
Une solution contenant ces fichiers source se trouve sur GitHub à https://github.com/bayardw/IdentityServer4.Authorization.Code
AddInMemoryScopes
,AddImMemoryUsers
, et aucune normeUser
classe. docs.identityserver.io/en/release/configuration/startup.htmlVoici un exemple - il est hybride à l'aide de flux à la place de flux de code. Mais hybride flux est plus recommandé de toute façon si vous avez de la bibliothèque du client le supporte (et le aspnetcore middlewares).
https://github.com/IdentityServer/IdentityServer4/tree/master/samples/Quickstarts/5_HybridFlowAuthenticationWithApiAccess