web-dev-qa-db-fra.com

Revendications de rôle dans ASP.NET Core Identity par rapport aux autorisations de rôle dans l'authentification personnalisée

Permet de s'éloigner de l'identité ASP.NET pendant une seconde et disons que nous construisons un système d'authentification/autorisation personnalisé pour notre application.

Il contiendra les tableaux suivants pour une flexibilité totale:
Utilisateurs
Les rôles
Autorisations
Rôles utilisateur
RôlePermissions

Avec ce qui précède, nous pouvons avoir une section complète de gestion des utilisateurs d'une application où un administrateur peut dire que l'utilisateur A a le rôle B qui a les autorisations C, D, F.

Ce qui précède a toujours fonctionné pour moi dans le passé, mais permet maintenant de passer à une application ASP.NET Core MVC utilisant ASP.NET Identity.

En essayant d'utiliser tout ce que Microsoft vous donne avec ASP.NET Core Identity dans le UserManager, je voudrais pouvoir continuer à atteindre ce qui précède, mais de la manière MVC ASP.NET Core Identity.

Ce que je sais:
Que je peux facilement utiliser UserManager pour implémenter des pages CRUD pour les utilisateurs et les rôles et les rôles des utilisateurs.

Ce que j'essaie de comprendre:
Comment puis-je reproduire le même comportement de "quelles autorisations/actions un rôle a-t-il?" concept.

Ma première supposition est que vous utiliseriez des revendications en combinaison avec des rôles. Les revendications sont attribuées aux rôles, c'est-à-dire les revendications de rôle, puis les rôles sont attribués aux utilisateurs.

De cette façon, je serais simplement en mesure de vérifier les rôles au-dessus des contrôleurs/méthodes d'action avec des balises d'autorisation. Et en outre, allez encore plus loin au niveau de la page en disant masquer/afficher le bouton Supprimer si le rôle de l'utilisateur n'a pas de réclamation "DeleteProduct" un peu comme ce que dit documentation d'autorisation basée sur la vue .

-

J'essaie de savoir si je suis sur la bonne voie avec ce genre de choses. Tout conseil ou correction serait utile.

9
Blake Rivell

Cette personne semble avoir une solution potentielle pour votre problème particulier.

Autorisations des rôles des utilisateurs utilisant ASP.NET Core Identity

Plus d'informations sur les réclamations et les politiques

https://docs.Microsoft.com/en-us/aspnet/core/security/authorization/claims

Fondamentalement

  1. Créer un nouvel utilisateur
  2. Créez un nouveau rôle
  3. Faire une nouvelle réclamation
  4. Ajouter une revendication au rôle
  5. Ajouter un utilisateur au rôle
  6. Créer une nouvelle stratégie avec réclamation (lors de la configuration des services)
  7. Vérifier si l'utilisateur est autorisé à appliquer la stratégie

Remarque: Je ne sais pas vraiment si cela fonctionne avec ASP.Net Core 2 ou non ou quelle version vous utilisiez.

10
George McKibbin