Configurer le cookie et le middleware OIDC
Dans ce guide, nous utiliserons un hosted login simple. Vous pouvez utiliser le cookie standard et le middleware OIDC fournis avec ASP.NET Core; assurez-vous donc d’installer les packages NuGet.UseCookieAuthentication. Le second est le middleware OIDC, configuré par l’appel à UseOpenIdConnectAuthentication.
Une fois que l’utilisateur s’est connecté à Auth0 à l’aide du middleware OIDC, ses informations seront automatiquement stockées dans un . Il vous suffit de configurer le middleware comme ci-dessus, et il se chargera de gérer la session de l’utilisateur.
Le middleware Connect (OIDC) extraira également tous les claims du , envoyé par Auth0 une fois l’utilisateur authentifié, et les ajoutera à ClaimsIdentity sous forme de claims.
Implement le Logout
Vous pouvez contrôler à la fois la session de l’application et la session Auth0 à l’aide de la méthodeSignOutAsync de la classe AuthenticationManager, en transmettant le schéma d’authentification duquel vous souhaitez vous déconnecter.
Par exemple, pour vous déconnecter du middleware de cookies et ainsi effacer le cookie d’authentification de votre application, vous pouvez effectuer la requête suivante :
SignOutAsync et en passant Auth0 comme schéma d’authentification à déconnecter.
OnRedirectToIdentityProviderForSignOut. Dans cet événement, vous devrez rediriger vers le endpoint de logout d’Auth0, ce qui effacera le cookie Auth0.
Autorisations Admin d’Implement
La manière la plus simple d’intégrer les groupes à une application ASP.NET Core consiste à utiliser l’autorisation fondée sur les rôles intégrée à ASP.NET Core. Pour ce faire, nous devrons ajouter un claim de typeAdmin en décorant le claim avec l’attribut [Authorize(Roles = "Admin")]. Vous pouvez aussi vérifier dans le code si un utilisateur appartient à un role précis en appelant User.IsInRole("Admin") dans votre contrôleur.
Le middleware OIDC ASP.NET ajoute automatiquement au ClaimsIdentity tous les claims renvoyés dans le . Nous devons donc extraire l’information du claim authorization, désérialiser le corps JSON du claim et, pour chacun des groupes, ajouter un claim http://schemas.microsoft.com/ws/2008/06/identity/claims/role au ClaimsIdentity.