En bref
- Auth0 prend en charge des normes ouvertes comme OAuth 2.0 et pour l’authentification et l’autorisation (consultez Quel protocole utiliser)
- OIDC prend en charge plusieurs flux d’autorisation; le plus approprié pour les applications Web est le flux de code d’autorisation (consultez Flux d’authentification)
- Votre application sera configurée dans Auth0 en tant qu’application (consultez Application)
- Les fournisseurs d’identité seront configurés dans Auth0 en tant que connexion (consultez Connexions)
- Auth0 fournit un widget Lock qui permet aux utilisateurs de se connecter à l’application (consultez Connexion de l’utilisateur)
- L’application Web doit gérer l’état de la session pour savoir que l’utilisateur est connecté. Parallèlement, Auth0 et le fournisseur d’identité gèrent aussi les informations de session. (consultez Gestion de session)
- À l’inverse, la déconnexion d’un utilisateur implique aussi trois couches de gestion de session (consultez Déconnexion de l’utilisateur)
- Le contrôle d’accès peut être géré à l’aide de l’extension Authorization Extension d’Auth0 (consultez Contrôle d’accès)
Par application Web régulière, nous entendons une application qui utilise principalement le serveur, les requêtes de page
GET et POST, ainsi que des cookies pour gérer l’état. À l’inverse, une application SPA Web (application monopage) repose largement sur du code Javascript côté client qui appelle une API.Le contexte
ExampleCo est une jeune entreprise de services-conseils. À l’heure actuelle, elle compte environ 100 employés et confie aussi plusieurs activités à des sous-traitants externes. La plupart des employés travaillent au bureau principal de l’entreprise, mais certaines équipes travaillent à distance. De plus, certains employés se déplacent fréquemment chez les clients et travaillent sur des appareils mobiles. Tous les employés et les sous-traitants externes doivent remplir leurs feuilles de temps chaque semaine au moyen de feuilles de calcul. Le système actuel est inefficace, et l’entreprise a décidé de passer à une solution plus efficace et plus automatisée. L’entreprise a évalué plusieurs applications de feuilles de temps offertes sur le marché et en est arrivée à la conclusion qu’il serait plus rentable de créer sa propre solution à l’interne, puisqu’elle recherche pour le moment une application très simple. L’application sera développée avec ASP.NET Core, puisque ses développeurs utilisent déjà cette technologie et qu’ils peuvent la rendre prête en une semaine environ.Objectifs et exigences
ExampleCo souhaite lancer rapidement la nouvelle solution; elle a donc choisi de commencer simplement et de la faire évoluer à mesure qu’elle recueille les commentaires de ses employés. L’application devrait être accessible uniquement aux utilisateurs connectés. Chaque utilisateur aura un rôle et, selon ce rôle, pourra effectuer certaines actions et consulter des données précises.Authentification vs autorisation
ExampleCo veut authentifier et autoriser chaque utilisateur. L’authentification concerne l’identité : il s’agit de vérifier que l’utilisateur est bien celui qu’il prétend être. L’autorisation consiste à déterminer aux ressources auxquelles un utilisateur devrait avoir accès et ce qu’il devrait être autorisé à faire avec celles-ci.- Une personne ayant le rôle User peut ajouter des entrées de feuille de temps en précisant la date, l’application et les heures travaillées. Le rôle Admin possède également ce droit.
- Les personnes ayant le rôle User ne devraient avoir accès qu’à leurs propres entrées de feuilles de temps.
-
Une personne ayant le rôle Admin peut en plus :
- approuver ou rejeter les entrées de feuilles de temps des autres utilisateurs.
- modifier la liste déroulante des valeurs de l’application (ajouter, modifier, supprimer).
