J'utilise des jetons JWT dans les en-têtes HTTP pour authentifier les demandes auprès d'un serveur de ressources. Le serveur de ressources et le serveur d'authentification sont deux rôles de travail distincts sur Azure.
Je ne peux pas décider si je dois stocker les revendications dans le jeton ou les joindre à la demande / réponse d'une autre manière. La liste des revendications affecte le rendu des éléments d'interface utilisateur côté client ainsi que l'accès aux données sur le serveur. Pour cette raison, je veux m'assurer que les réclamations reçues par le serveur sont authentiques et validées avant le traitement de la demande.
Des exemples de revendications sont: CanEditProductList, CanEditShopDescription, CanReadUserDetails.
Les raisons pour lesquelles je souhaite utiliser le jeton JWT pour eux sont:
- Meilleure protection contre la modification côté client des revendications (c.-à-d. Piratage de la liste des revendications).
- Pas besoin de rechercher les réclamations à chaque demande.
Les raisons pour lesquelles je ne veux pas utiliser le jeton JWT:
- Le serveur d'authentification doit alors connaître la liste des revendications centrées sur l'application.
- Le jeton devient un point d'entrée unique.
- J'ai lu quelques choses en disant que les jetons JWT ne sont pas destinés aux données au niveau de l'application.
Il me semble que les deux ont des inconvénients, mais je penche pour l'inclusion de ces revendications dans le jeton et je veux juste gérer cela par des personnes qui ont déjà traité cela.
REMARQUE: je vais utiliser HTTPS pour toutes les demandes d'API, il me semble donc que le jeton sera suffisamment «sûr». J'utilise AngularJS, C #, Web API 2 et MVC5.