所以我了解角色与权限。我也了解角色与主张。在这两种情况下,声明和权限都是细粒度的,通常是按功能或业务操作,例如 AddPerson 权限。我一直在学习基于声明的授权以及展示它如何“更好”的示例,并且通常将其与基于角色的授权进行比较。显然它更好,因为这是使用角色的错误方式,因为您应该使用权限作为操作和角色之间的映射。
基于声明和基于许可的授权有什么区别? (注意权限与角色不同,所以这不是 Role vs Claim 问题的重复)
在这两种情况下,您似乎都有细粒度的权限/声明。到目前为止,我看到的关于声明的具体示例非常接近我将概念化为权限的内容。我在声明中看到的一个示例是 Add/Person 声明,当然我会拥有与 AddPerson 权限类似的权限。我发现通常我有一个具有单个入口点的业务层,并且每个功能/入口点都需要权限。在这两种情况下,许可/声明的合理性是随着时间的推移,特定身份或角色可能会在允许做的事情方面发生变化。而且,如果您在应用程序中对该角色进行了硬编码检查,则必须更改代码以适应,但如果您使用了声明/权限,那么更改与角色关联的内容只是一个管理问题。
我问这个问题听起来不像是在挑战索赔的想法。相反,我知道如果我更清楚地了解是什么使它们与权限不同,我可能会对声明有更好的概念。