Construire l'authentification ASP.NET Core avec Logto
Apprenez comment construire un flux d'authentification utilisateur avec ASP.NET Core en intégrant le SDK Logto.
Introduction
- Logto est une alternative moderne à Auth0 pour construire une infrastructure d'identité client avec un effort minimal. Il prend en charge diverses méthodes de connexion, y compris le nom d'utilisateur, l'e-mail, le numéro de téléphone et les connexions sociales populaires comme Google et GitHub.
- ASP.NET Core est un framework open source, cross-platform, à haute performance pour construire des applications modernes, basées sur le cloud et connectées à Internet.
Dans ce tutoriel, nous vous montrerons comment construire un flux d'authentification utilisateur avec ASP.NET Core en intégrant SDK Logto. Le tutoriel utilise C# comme langage de programmation.
Prérequis
Avant de commencer, assurez-vous d'avoir ce qui suit :
- Un compte Logto. Si vous n'en avez pas, vous pouvez vous inscrire gratuitement.
- Un environnement de développement .NET et un projet ASP.NET Core. Si vous n'en avez pas, vous pouvez installer .NET et suivre les tutoriels ASP.NET pour configurer votre projet.
Créer une application Logto
Pour commencer, créez une application Logto avec le type "Web traditionnel". Suivez ces étapes pour créer une application Logto :
- Connectez-vous à la Console Logto.
- Dans la barre de navigation à gauche, cliquez sur Applications.
- Cliquez sur Créer une application.
- Dans la page ouverte, trouvez la section "Application web traditionnelle" et localisez la carte "ASP.NET Core".
- Cliquez sur Commencer la construction, et entrez le nom de votre application.
- Cliquez sur Créer.
Vous devriez alors voir un tutoriel interactif qui vous guide tout au long du processus d'intégration du SDK Logto avec votre application ASP.NET Core. Le contenu suivant peut être une référence pour une utilisation future.
Intégrer avec le SDK Logto
Installation
Notez que la version minimale prise en charge de ASP.NET Core est 6.0
.
Ajouter le middleware d'authentification Logto
Ouvrez Startup.cs
(ou Program.cs
) et ajoutez le code suivant pour enregistrer le middleware d'authentification Logto :
La méthode AddLogtoAuthentication
fera les actions suivantes :
- Définir le schéma d'authentification par défaut sur
LogtoDefaults.CookieScheme
. - Définir le schéma de challenge par défaut sur
LogtoDefaults.AuthenticationScheme
. - Définir le schéma de déconnexion par défaut sur
LogtoDefaults.AuthenticationScheme
. - Ajouter les gestionnaires d'authentification cookie et OpenID Connect au schéma d'authentification.
Connexion
Ajoutez l'URI suivante à la liste Redirect URIs
dans la page de détails de l'application Logto :
Pour vous connecter avec Logto, vous pouvez utiliser la méthode ChallengeAsync
:
La méthode ChallengeAsync
redirigera l'utilisateur vers la page de connexion Logto.
La propriété RedirectUri
est utilisée pour rediriger l'utilisateur vers votre application web après l'authentification. Notez qu'elle diffère de l'URI de redirection que vous avez configurée dans la page de détails de l'application Logto :
- L'URI de redirection dans la page de détails de l'application Logto est l'URI vers laquelle Logto redirigera l'utilisateur après que l'utilisateur s'est connecté.
- La propriété
RedirectUri
est l'URI vers laquelle on est redirigé après que les actions nécessaires ont été prises dans le middleware d'authentification Logto.
L'ordre des actions est 1 -> 2. Pour plus de clarté, appelons l'URI de redirection dans la page de détails de l'application Logto l'URI de redirection Logto et la propriété RedirectUri
l'URI de redirection de l'application.
L'URI de redirection Logto a une valeur par défaut de /Callback
, que vous pouvez laisser telle quelle s'il n'y a pas d'exigence particulière. Si vous voulez la changer, vous pouvez définir la propriété CallbackPath
pour LogtoOptions
:
N'oubliez pas de mettre à jour la valeur dans la page de détails de l'application Logto en conséquence.
Se déconnecter
Ajoutez l'URI suivante à la liste Post sign-out redirect URIs
dans la page de détails de l'application Logto :
Pour se déconnecter avec Logto, vous pouvez utiliser la méthode SignOutAsync
:
La méthode SignOutAsync
effacera le cookie d'authentification et redirigera l'utilisateur vers la page de déconnexion Logto.
La propriété RedirectUri
est utilisée pour rediriger l'utilisateur vers votre application web après la déconnexion. Notez qu'elle diffère de l'URI de redirection post-déconnexion que vous avez configurée dans la page de détails de l'application Logto :
- L'URI de redirection post-déconnexion dans la page de détails de l'application Logto est l'URI vers laquelle Logto redirigera l'utilisateur après que l'utilisateur s'est déconnecté.
- La propriété
RedirectUri
est l'URI vers laquelle on est redirigé après que les actions nécessaires ont été prises dans le middleware d'authentification Logto.
L'ordre des actions est 1 -> 2. Pour plus de clarté, appelons l'URI de redirection post-déconnexion dans la page de détails de l'application Logto l'URI de redirection post-déconnexion Logto et la propriété RedirectUri
l'URI de redirection post-déconnexion de l'application.
L'URI de redirection post-déconnexion Logto a une valeur par défaut de /SignedOutCallback
, que vous pouvez laisser telle quelle s'il n'y a pas d'exigence particulière. Si vous voulez la changer, vous pouvez définir la propriété SignedOutCallbackPath
pour LogtoOptions
:
N'oubliez pas de mettre à jour la valeur dans la page de détails de l'application Logto en conséquence.
Implémenter des boutons de connexion/déconnexion (Pages Razor)
Premièrement, ajoutez les méthodes de gestion à votre PageModel
, par exemple :
Ensuite, ajoutez les boutons à votre page Razor (html) :
<p>Est authentifié : @User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">Deconnexion</button>
} else {
<button type="submit" asp-page-handler="SignIn">Connexion</button>
}
</form>
Il affichera le bouton "Se connecter" si l'utilisateur n'est pas authentifié, et affichera le bouton "Se déconnecter" si l'utilisateur est authentifié.
Point de contrôle : Exécutez l'application web
Maintenant, vous pouvez exécuter l'application web et essayer de vous connecter/déconnecter avec Logto :
- Ouvrez l'application web dans votre navigateur, vous devriez voir "Est authentifié : False" et le bouton "Se connecter".
- Cliquez sur le bouton "Se connecter", et vous devriez être redirigé vers la page de connexion Logto.
- Après vous être connecté, vous devriez être redirigé vers l'application web, et vous devriez voir "Est authentifié : True" et le bouton "Se déconnecter".
- Cliquez sur le bouton "Se déconnecter", et vous devriez être redirigé vers la page de déconnexion Logto, puis redirigé vers l'application web.
Si vous rencontrez des problèmes lors de l'intégration, n'hésitez pas à nous contacter par e-mail à [email protected] ou rejoignez notre serveur Discord !