web-dev-qa-db-fra.com

Quelles sont les revendications dans ASP Identité .NET

Quelqu'un peut-il expliquer, en quoi consiste le mécanisme de revendication dans le nouveau noyau ASP.NET Identity?

Comme je peux le voir, il existe une table AspNetUserLogins, qui contient UserId, LoginProvider et ProviderKey.

Cependant, je ne comprends toujours pas ou ne trouve aucune information sur l'ajout de données à la table AspNetUserClaims et sur les situations dans lesquelles cette table est utilisée.

142
FSou1

que signifie mécanisme de réclamation dans le nouveau noyau ASP.NET Identity?

Il existe deux approches d’autorisation courantes basées sur le rôle et la revendication.

Sécurité basée sur les rôles

Un utilisateur se voit attribuer un ou plusieurs rôles lui permettant d'obtenir des droits d'accès. De plus, en attribuant un utilisateur à un rôle, l'utilisateur obtient immédiatement tous les droits d'accès définis pour ce rôle.

Sécurité basée sur les revendications

Une identité basée sur les revendications est l'ensemble des revendications. Une revendication est une déclaration qu'une entité (un utilisateur ou une autre application) fait sur elle-même, il s'agit simplement d'une revendication. Par exemple, une liste de réclamations peut comporter le nom de l’utilisateur, son courrier électronique, son âge, son autorisation pour une action. Dans la sécurité basée sur les rôles, un utilisateur présente les informations d'identification directement à l'application. Dans un modèle basé sur les revendications, l'utilisateur présente les revendications et non les informations d'identification à l'application. Pour qu’une revendication ait une valeur pratique, elle doit provenir d’une entité approuvée par l’application.

Les étapes ci-dessous illustrent la séquence de ce qui se passe dans un modèle de sécurité basé sur les revendications:

  1. L'utilisateur demande une action. L'application de partie de confiance (RP) demande un jeton.
  2. L'utilisateur présente les informations d'identification à l'autorité émettrice approuvée par l'application RP.
  3. L’autorité d’émission émet un jeton signé avec les revendications, après authentification des informations d’identité de l’utilisateur.
  4. L'utilisateur présente le jeton à l'application RP. L'application valide la signature du jeton, extrait les revendications et, sur la base des revendications, accepte ou refuse la demande.

Mais, je ne comprends toujours pas et ne trouve aucune information lorsque les données s'ajoutent à AspNetUserClaims et quelles situations cette table utilise pour?

Lorsque vous vous trouvez dans une situation où une sécurité basée sur un rôle n'est pas utilisée et que vous avez choisi d'utiliser la sécurité basée sur une revendication, vous devez utiliser la table AspNetUserClaims. Pour savoir comment utiliser les revendications dans l'identité ASP.NET, voir le lien ci-dessous pour plus d'informations.

http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html

Mettre à jour

À quelle heure dois-je utiliser la sécurité basée sur les rôles et quand basée sur les revendications? Pourriez-vous s'il vous plaît écrire quelques exemples?

Il n’existe pas de situation très claire dans laquelle vous utiliseriez ou non une sécurité basée sur un rôle ou sur une revendication, contrairement à un cas dans lequel vous utiliseriez A plutôt que B.

Cependant, le contrôle d'accès basé sur les revendications permet une meilleure séparation des règles d'autorisation de la logique métier principale. Lorsque les règles d'autorisation changent, la logique métier principale reste inchangée. Dans certains cas, vous préférerez peut-être utiliser une approche basée sur les revendications.

Parfois, les réclamations ne sont pas nécessaires. Ceci est un avertissement important. Les entreprises disposant d'un hôte d'applications internes peuvent utiliser l'authentification Windows intégrée pour obtenir de nombreux avantages fournis par les revendications. Active Directory fait un excellent travail de stockage des identités d'utilisateurs et, comme Kerberos fait partie de Windows, vos applications n'ont pas besoin d'inclure beaucoup de logique d'authentification. Tant que chaque application que vous construisez peut utiliser l'authentification Windows intégrée, vous avez peut-être déjà atteint votre utopie d'identité. Cependant, il existe de nombreuses raisons pour lesquelles vous pourriez avoir besoin de quelque chose d'autre que l'authentification Windows. Vous avez peut-être des applications Web utilisées par des personnes qui n'ont pas de compte dans votre domaine Windows. Une autre raison peut être que votre société a fusionné avec une autre et que vous rencontrez des difficultés pour vous authentifier dans deux forêts Windows qui n'ont pas (et peuvent ne jamais) de relation de confiance. Vous souhaitez peut-être partager des identités avec une autre société disposant d'applications non .NET Framework ou vous devez partager des identités entre des applications s'exécutant sur des plates-formes différentes (par exemple, le Macintosh). Ce ne sont là que quelques situations dans lesquelles l’identité basée sur les revendications peut être le bon choix pour vous.

Pour plus d'informations, visitez le site http://msdn.Microsoft.com/en-us/library/ff359101.aspx

173
Lin

Juste pour ajouter plus sur ce que @Lin a dit ci-dessus. Je me réfère spécifiquement à la question:

À quelle heure dois-je utiliser la sécurité basée sur les rôles et quand basée sur les revendications? Pourriez-vous s'il vous plaît écrire quelques exemples?

Prenons le cas où vous avez un système de pointage dans lequel vous avez un technicien et un responsable. À la fin de chaque semaine, le technicien doit préparer des rapports avec des informations de pointage indiquant les heures de travail des artisans travaillées pour cette semaine, qui sont consolidées et utilisées par la paie. De tels systèmes doivent souvent être modifiés ou corrigés avant la soumission des rapports finaux, car vous ne voulez pas trop payer ni trop payer vos employés. Vous pouvez utiliser une approche Role-Based pour le responsable et le technicien en créant un Manager Role et Technician Role. Mais le Manager Role est celui avec la possibilité d'accéder et de modifier les informations de pointage des artisans. D'autre part, vous pouvez avoir le Technician Role sans ces capacités pour accéder à cette information. Mais voici la partie intéressante; Un responsable peut faire une réclamation et permettre à un technicien d’accéder aux systèmes de synchronisation et d’établir des rapports. Ainsi, une réclamation ne peut être faite que pour un accès sans édition ou peut être faite avec des capacités d'accès et d'édition.

Cela revient plus à dire: Eh bien, par défaut, en tant que responsable, je peux accéder à certaines informations auxquelles mon technicien n'a pas accès. Mais je ne suis pas toujours au bureau? que puis-je faire pour qu'il puisse toujours faire le travail même quand je ne suis pas là? Pour résoudre ce problème, le système peut permettre aux gestionnaires de créer des revendications pour les personnes sans accès à certaines informations spécifiques. Nous les voyons souvent partout dans nos ERP systèmes. Un utilisateur qui n'a pas accès à certains modules et qui, une fois promus, obtient l'autorisation d'accéder à davantage de modules du système ERP, conserve parfois le même rôle d'utilisateur.

C’est un exemple que vous pouvez envisager pour mieux comprendre les revendications et les rôles.

3
Mosia Thabo