首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >策略和基于权限的访问控制有什么区别?

策略和基于权限的访问控制有什么区别?
EN

Software Engineering用户
提问于 2021-10-06 07:28:04
回答 1查看 834关注 0票数 3

我是这方面的新手,虽然我能够区分role-basedpolicy-based授权模型,但我似乎不明白基于策略的授权模型与基于权限的授权模型之间是否存在区别。在概念层面上,它们之间有什么区别?policypermission术语可以互换使用吗?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2021-10-06 08:42:15

我敢肯定,你在谷歌上看到的基于政策的auth的经典例子是一款销售酒精的应用程序,在(正常国家)会读到:

代码语言:javascript
复制
Allow user if user.age > 18

这是以角色为基础的.

代码语言:javascript
复制
Allow user if user.role is in {"Adult"}

或基于权限的权限将读取

代码语言:javascript
复制
Allow user if user.permission == "CanBuyAlcohol"

当您认为将某人置于角色中的规则可能是任意的时,基于角色的好处是显而易见的。例如,一些国家的酒精是非法的,有些国家有不同的年龄,你可以看到你的认证代码是如何变得复杂的。

代码语言:javascript
复制
if(!user.country.IsInLockdown)
{
    If user.country == UK
       Allow user if user.age > 18
    else if user.country = "US"
       //check local state laws
       Allow user if user.age > 21
    else if user.country.religion == Muslim && ! user.IsTourist
       return false
...

显然,对于基于角色的auth,您仍然需要在某个地方这样做,以确定是否可以将某人放到不同的角色中。但是,这可以委托给一个人或者一个单独的特定软件,而不是嵌入到您的应用程序中,而应用程序可能并不关心这些细节。

基于权限被认为是有问题的,因为您最终会拥有一个庞大的用户网格和无法维护的权限。

代码语言:javascript
复制
userid, canBuyAlcohol, canBuyCigarettes, canPlayInBallPit
1, yes, yes, no
2, no, no, yes
3, no, yes, yes ?!?
票数 9
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/432474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档