1
Configuration d’Auth0
Pour utiliser les services Auth0, vous devez avoir une application installée dans Auth0 Dashboard. L’application Auth0 est l’endroit où vous allez configurer le fonctionnement de l’authentification pour le projet que vous développez.
Configurer une application
Utilisez le sélecteur interactif pour créer une nouvelle application Auth0 ou sélectionner une application existante qui représente le projet avec lequel vous souhaitez effectuer l’intégration. Dans Auth0, il est attribué à chaque application un identifiant client unique alphanumérique que votre code d’application utilisera pour appeler les API Auth0 via la trousse SDK.Tous les paramètres que vous configurez à l’aide de ce guide rapide seront automatiquement mis à jour pour votre application dans le Dashboard, qui est l’endroit où vous pourrez gérer vos applications à l’avenir.Si vous préférez explorer une configuration complète, consultez plutôt un exemple d’application.Configurer les URL de rappel
Une URL de rappel est une URL intégrée dans votre application vers laquelle vous souhaitez qu’Auth0 redirige les utilisateurs après leur authentification. Si elle n’est pas définie, les utilisateurs ne seront pas redirigés vers votre application après s’être connectés.Si vous suivez notre exemple de projet, définissez cette URL comme suit :
http://localhost:3000/auth/auth0/callback
.Configuration des URL de déconnexion
Une URL de déconnexion est une URL intégrée dans votre application vers laquelle vous souhaitez qu’Auth0 redirige les utilisateurs après leur déconnexion. Si elle n’est pas définie, les utilisateurs ne pourront pas se déconnecter de votre application et recevront un message d’erreur.Si vous suivez notre exemple de projet, définissez cette URL comme suit :
http://localhost:3000
.Configurer les origines Web autorisées
Une origine Web autorisée est une URL que vous souhaitez autoriser à accéder à votre flux d’authentification. Elle doit contenir l’URL de votre projet. Si elle n’est pas configurée adéquatement, votre projet ne pourra pas actualiser silencieusement les jetons d’authentification, ce qui entraînera la déconnexion de vos utilisateurs lorsque prochainement ils visiteront votre application ou lors de l’actualisation d’une page.Si vous suivez notre exemple de projet, définissez cette URL comme suit :
http://localhost:3000
.2
Ajouter des dépendances
Utilisez Une fois vos gems ajoutés, installez-les avec la commande
omniauth-auth0
, une stratégie OmniAuth personnalisée, pour gérer le flux d’authentification.Ajoutez les dépendances suivantes à votre Gemfile
:bundle install
.3
Configuration de la trousse SDK
Créez un fichier de configuration
./config/auth0.yml
pour préciser votre domaine Auth0, votre identifiant client et vos valeurs de secret client situées dans votre Auth0 Dashboard sous les paramètres de l’application.4
Configurer l’intergiciel OmniAuth
Créez le fichier d’initialisation suivant
./config/initializers/auth0.rb
et configurez l’intergiciel OmniAuth avec le fichier de configuration que vous avez créé à l’étape précédente.Assurez-vous que callback_path
correspond à la valeur donnée dans le paramètre des URL de rappel autorisées de votre application Auth0.5
Ajouter un contrôleur Auth0
Créez un contrôleur Auth0 pour gérer le rappel d’authentification, l’action
logout
et les méthodes pour créer l’URL de déconnexion.Exécutez la commande rails generate controller auth0 callback failure logout --skip-assets --skip-helper --skip-routes --skip-template-engine
.Dans la méthode de rappel, assignez le hachage des informations utilisateur, renvoyé en tant que request.env[’omniauth.auth’]
à la session active.Pour configurer la déconnexion, effacez tous les objets stockés dans la session en appelant la méthode reset_session
dans l’action logout
. Ensuite, redirigez vers le point de terminaison de déconnexion Auth0. Pour en savoir plus sur reset_session
, consultez Documentation relative au ActionController Ruby on Rails.6
Configurer les routes
Ajoutez ces routes à votre fichier
./config/routes.rb
.Les routes doivent être en place afin que Rails sache comment diriger les différentes URL de rappel Auth0 vers le contrôleur Auth0 que vous avez créé à l’étape précédente.Point de contrôle
Exécutez votre application pour vérifier qu’elle fonctionne toujours comme prévu et que vous ne recevez aucun message d’erreur lié à Auth0.7
Ajouter une fonctionnalité de connexion à votre application
Un utilisateur peut maintenant se connecter à votre application en visitant le point de terminaison
/auth/auth0
.Pour prévenir les requêtes d’authentification falsifiées, utilisez les méthodes d’assistance
link\_to
ou button\_to
avec la méthode :post
.Point de contrôle
Ajoutez un bouton à votre application qui redirige l’utilisateur vers le point de terminaison/auth/auth0
lorsqu’il est sélectionné. Observez si vous êtes redirigé vers Auth0 pour vous connecter, puis renvoyé vers votre application après une authentification réussie.8
Ajoutez une fonctionnalité de déconnexion à votre application
Maintenant que vous pouvez vous connecter à votre application Rails, vous avez besoin d’un moyen de vous déconnecter. Déconnectez un utilisateur en le redirigeant vers l’action
auth/logout
qui le redirige vers le point de terminaison de déconnexion d’Auth0.Pour tester cela après l’étape précédente, vous devez peut-être effacer votre session, puis rediriger l’utilisateur vers le point de terminaison de déconnexion d’Auth0.
Point de contrôle
Ajoutez un bouton à votre application qui redirige l’utilisateur vers le point de terminaison/auth/logout
lorsqu’il est sélectionné. Vérifiez que vous êtes redirigé vers Auth0, puis renvoyé rapidement vers votre application, et que vous n’êtes plus connecté.9
Afficher les informations du profil utilisateur
Pour afficher le profil utilisateur, votre application doit fournir une route protégée. Vous pouvez utiliser une préoccupation pour contrôler l’accès aux routes qui peuvent être partagées entre plusieurs contrôleurs. La préoccupation devrait rediriger automatiquement vers Auth0 lorsque l’utilisateur n’est pas authentifié. Au cas contraire, la préoccupation devrait renvoyer le profil utilisateur actuel.Une fois que vous avez une préoccupation, incluez-la dans tout contrôleur qui nécessite un utilisateur connecté. Vous pouvez ensuite accéder à l’utilisateur à partir de la session Une fois que l’utilisateur a chargé la session, utilisez-la pour afficher des informations dans votre système frontal :
session[:userinfo]
comme dans l’exemple suivant :Point de contrôle
Ajoutez le concernSecured
à votre application, puis incluez-le dans le contrôleur qui nécessite un utilisateur authentifié pour y accéder. Vérifiez qu’un utilisateur authentifié a accès aux actions de ce contrôleur et que les utilisateurs non authentifiés sont redirigés vers Auth0 pour l’authentification.Étapes suivantes
Beau travail! Si vous en êtes arrivé là, vous devriez avoir la connexion, la déconnexion et les informations de profil utilisateur actives dans votre application.Cela conclut notre tutoriel de démarrage rapide, mais il y a tellement plus à explorer. Pour en savoir plus sur ce que vous pouvez faire avec Auth0, consultez :- Auth0 Dashboard : apprenez à configurer et gérer votre locataire et vos applications Auth0
- Trousse SDK omniauth-auth0 : explorez en détail la trousse SDK utilisée dans ce tutoriel
- Auth0 Marketplace : découvrez des intégrations que vous pouvez activer pour étendre les fonctionnalités d’Auth0