Ajouter une autorisation à votre application API ASP.NET OWIN Web

Auth0 vous permet d’ajouter une autorisation à n’importe quel type d’application. Ce guide explique comment intégrer Auth0 à n’importe quelle application API ASP.NET Owin Web, nouvelle ou ancienne, à l’aide du package Microsoft.Owin.Security.Jwt.

Si vous n’avez pas encore créé d’API dans votre Auth0 Dashboard, vous pouvez utiliser le sélecteur interactif pour créer une nouvelle API Auth0 ou sélectionner une API existante pour votre projet.

Pour configurer votre première API via Auth0 Dashboard, consultez notre guide de démarrage.

Chaque API Auth0 utilise l’identificateur API, dont votre application a besoin pour valider le jeton d’accès.

1

Définir les autorisations

Les autorisations vous permettent de définir comment les ressources peuvent être accessibles au nom de l’utilisateur avec un jeton d’accès donné. Par exemple, vous pouvez choisir d’accorder un accès en lecture à la ressource messages si les utilisateurs ont le niveau d’accès gestionnaire et un accès en écriture à cette ressource s’ils ont le niveau d’accès administrateur.

Vous pouvez définir les autorisations autorisées dans la vue Permissions (Autorisations) de la section API d’Auth0 Dashboard. L’exemple suivant utilise la permission read:messages.

Auth0 Dashboard> Applications > APIs (API) > [Specific API (API précise)] > Onglet Permissions (Autorisations)

2

Installer les dépendances

Installez le NuGetPackage Microsoft.Owin.Security.Jwt. Ce package contient l’intergiciel OWIN JWT nécessaire pour utiliser les jetons d’accès Auth0 dans l’API Web ASP.NET Owin.

Install-Package Microsoft.Owin.Security.Jwt

Was this helpful?

/

3

Configurer l’intergiciel

Allez dans la méthode de Configuration de votre classe Startup et ajoutez un appel à UseJwtBearerAuthentication passant dans les JwtBearerAuthenticationOptions configurées.

JwtBearerAuthenticationOptions doit indiquer votre identificateur API Auth0 dans la propriété ValidAudience et le chemin complet vers votre domaine Auth0 en tant que ValidIssuer. Vous devrez configurer l’instance IssuerSigningKeyResolver pour utiliser l’instance OpenIdConnectSigningKeyResolver afin de résoudre la clé de connexion.

4

Vérifier la signature du jeton

Le logiciel médiateur OWIN JWT n’utilise pas Open ID Connect Discovery par défaut, vous devez donc fournir un IssuerSigningKeyResolver personnalisé.

Créez la classe OpenIdConnectSigningKeyResolver et assurez-vous de retourner la bonne SecurityKey en implémentant GetSigningKey. Cette classe est ensuite utilisée comme TokenValidationParameters.IssuerSigningKeyResolver lors de la configuration du logiciel médiateur dans Startup.cs.

5

Valider les permissions

Le logiciel médiateur JWT vérifie que le jeton d’accès inclus dans la requête est valide; cependant, il n’inclut pas encore de mécanisme pour vérifier que le jeton a une scope (permission) suffisante pour accéder aux ressources demandées.

Créez une classe appelée ScopeAuthorizeAttribute qui hérite de System.Web.Http.AuthorizeAttribute. Cet attribut vérifiera que la demande de scope émise par votre locataire Auth0 est présente, et si oui, il assurera que la demande de scope contient la permission demandée.

6

Protéger les points de terminaison des API

Les routes ci-dessous sont disponibles pour les demandes suivantes :

  • GET /api/public : Disponible pour les demandes non authentifiées.

  • GET /api/private : Disponible pour les demandes authentifiées contenant un jeton d’accès sans permission supplémentaire.

  • GET /api/private-scoped : Disponible pour les demandes authentifiées contenant un jeton d’accès dont la permission read:messages est accordée.

L’intergiciel JWT s’intègre aux mécanismes d’authentification et d’autorisation standard d’ASP.NET, vous n’avez donc qu’à décorer votre action de contrôleur avec l’attribut [Authorize] pour obtenir un point de terminaison.

Mettez à jour l’action avec l’attribut ScopeAuthorize et passez le nom de la scope requise dans le paramètre scope. Cela garantit que la permission adéquate est disponible pour appeler un point de terminaison d’API donné.

checkpoint.header

Maintenant que vous avez configuré votre application, lancez votre application et vérifiez que :

  • GET /api/public est disponible pour les demandes non authentifiées.

  • GET /api/private est disponible pour les demandes authentifiées.

  • GET /api/private-scoped est disponible pour les demandes authentifiées contenant un jeton d’accès avec la permission read:messages.

Next Steps

Excellent work! If you made it this far, you should now have login, logout, and user profile information running in your application.

This concludes our quickstart tutorial, but there is so much more to explore. To learn more about what you can do with Auth0, check out:

  • Auth0 Dashboard - Learn how to configure and manage your Auth0 tenant and applications
  • Auth0 Marketplace - Discover integrations you can enable to extend Auth0’s functionality

Did it work?

Any suggestion or typo?

Edit on GitHub
Sign Up

Sign up for an or to your existing account to integrate directly with your own tenant.