Quelle est la différence entre "autorisation basée sur les rôles" et "autorisation basée sur les revendications"? Dans quelles circonstances serait-il approprié de mettre en œuvre chacun de ces modèles d'autorisation?
Les revendications sont une méthode pour fournir des informations sur un utilisateur, et les rôles sont une description d'un utilisateur par le biais des rôles auxquels ils appartiennent.
Les revendications sont généralement plus utiles car elles peuvent contenir des données arbitraires, notamment des informations sur l'appartenance à un rôle. Par exemple. tout ce qui est utile pour l'application donnée.
Les identités basées sur les revendications sont plus utiles, mais ont tendance à être plus difficiles à utiliser, car il faut beaucoup de configuration pour acquérir les revendications en premier lieu. Les identités RBAC sont moins utiles car elles ne sont qu'une collection de rôles, mais elles sont généralement plus faciles à configurer.
La pile .NET, et Windows dans son ensemble, va des réclamations. Les tickets d'authentification Windows sont des revendications, et Active Directory a désormais la possibilité d'utiliser des revendications pour certaines fonctions. La pile .NET utilise désormais une identité de revendications comme objet d'identité de base par défaut.
Comme l'a dit @SteveS, RBAC est un modèle d'autorisation tandis que les revendications sont un moyen de fournir des informations sur un utilisateur. Il généralise la notion de rôle. Dans le passé, les serveurs d'identité fournissaient simplement aux applications le nom d'utilisateur et la liste des rôles/groupes. Les revendications généralisent cela de telle sorte que tout attribut utilisateur peut être transmis à l'application consommatrice.
L'autorisation elle-même gère toujours l'autorisation en utilisant les revendications et sa propre logique. Microsot SharePoint et Windows Server 2012 sont de bons exemples d'applications utilisant des revendications pour délivrer une autorisation plus fine. SharePoint suppose que si un utilisateur a au moins une revendication qui est également affectée à un site/document, l'accès est autorisé. Windows Server 2012 possède un langage appelé SDDL qui peut être utilisé pour combiner les revendications des utilisateurs et les informations de classification des fichiers.
En règle générale, cependant, vous souhaitez comparer RBAC (contrôle d'accès basé sur les rôles) à ABAC (contrôle d'accès basé sur les attributs). Les deux sont des modèles d'autorisation définis par le NIST. Les deux peuvent utiliser des revendications mais pas nécessairement. De plus, les revendications sont très centrées sur l'utilisateur alors qu'ABAC vous permet de définir l'autorisation en fonction des attributs utilisateur (revendications) ainsi que des attributs de ressource (objet) et même du contexte (heure de la journée ...).
ABAC est implémenté dans le standard OASIS XACML (eXtensible Access Control Markup Language) qui vous offre un contrôle d'accès basé sur des attributs et des politiques.
Voici quelques bonnes références que vous pouvez consulter: