Permissions Key斗篷中的资源、作用域、权限和策略
我想使用Key斗篷的授权系统创建一个相当简单的基于角色的访问控制系统。正在替换的系统keydepeat允许我们创建一个“用户”,该用户是一个或多个“组”的成员。在这个遗留系统中,通过组成员身份(其中组被分配了权限)或直接向用户授予权限,用户被授予“权限”来访问大约250个“功能”中的每一个 我想将遗留系统映射到KeyClope授权 对我来说,将现有系统中的每个“功能”映射到一个keydepot资源和一组keydepot作用域应该很简单。例如,“viewAccount”功能显然会映射到“account”资源和“view”范围;和“viewTransaction”映射到“transaction”资源。。。但最好的做法是只创建一个“视图”范围,并跨多个资源(帐户、事务等)使用它吗?还是应该创建“viewAccount”范围、“viewTransaction”范围等 同样,我对权限也有点困惑。对于资源和范围的每个实际组合,是否通常创建权限?如果有多个权限与给定的资源/作用域相匹配,KeyClope会做什么?我猜keydape的目的是允许我根据资源和作用域配置权限矩阵,因此,例如,我可以有访问“帐户”的权限和查看“范围”的权限,因此我有查看帐户的权限 我这样问是因为所有这些的结果似乎是我以前的“viewAccount”功能最终创建了一个“Account”资源,具有“View”范围和“viewAccount”权限,这似乎让我回到了原来的位置。如果正确的话,这很好 最后,显然我需要一组策略来确定是否应该应用viewAccount。但这是否意味着我需要为用户可能属于的每个遗留组制定一个策略?例如,如果我有一个“帮助台”角色,那么我需要一个“帮助台成员资格”策略,然后我可以将其添加到“viewAccount”权限中。这是正确的吗 谢谢Permissions Key斗篷中的资源、作用域、权限和策略,permissions,keycloak,Permissions,Keycloak,我想使用Key斗篷的授权系统创建一个相当简单的基于角色的访问控制系统。正在替换的系统keydepeat允许我们创建一个“用户”,该用户是一个或多个“组”的成员。在这个遗留系统中,通过组成员身份(其中组被分配了权限)或直接向用户授予权限,用户被授予“权限”来访问大约250个“功能”中的每一个 我想将遗留系统映射到KeyClope授权 对我来说,将现有系统中的每个“功能”映射到一个keydepot资源和一组keydepot作用域应该很简单。例如,“viewAccount”功能显然会映射到“accou
马克我知道我晚了2年多,但我想我会与大家分享我所知道的,希望能减轻未来读者的痛苦。完全透明-我绝不是keydape/OAuth/OIDC专家,我所知道的主要是通过阅读文档、书籍、优秀的YouTube和使用该工具 该职位将由两部分组成:
keydape 8.0.0
- 在KeyClope中,您可以创建两种类型的权限:和
- 简单地说,对于基于
资源的
权限,您可以将其直接应用于您的资源
- 对于
权限,您可以将其应用于您的一个或多个作用域和资源李>基于作用域的
账户
和交易
,因此我倾向于第二种方法
从长远来看,拥有与您的所有资源(例如,账户
,交易
,客户
,结算
…)相关联的全局视图
范围会使授权难以管理和适应安全需求的变化
这里有几个例子,你可以看看,以获得设计的感觉
keydape
允许对具有相同类型的资源执行此操作。例如,您可能需要viewcount
和viewTransaction
范围来读取给定帐户下的事务(毕竟您可能需要访问该帐户才能查看事务)。您的要求和标准将严重影响您的设计
对于资源和范围的每个实际组合,是否通常创建权限
抱歉,我不完全理解这个问题,所以我要宽泛一点。要授予/拒绝访问资源
,您需要:
- 定义你的
- 定义你的
- 将策略应用于您的权限
- 将您的权限与
范围
或资源
(或两者)关联
使政策执行生效。看
你如何设置这一切完全取决于你自己。例如,您可以:
- 定义单个策略,并将每个策略绑定到相应的权限下
- 更好的方法是定义单个策略,然后将所有相关策略分组到一个
聚合的策略(策略的策略)下,然后将该聚合的策略与基于范围的权限相关联。您可以将基于作用域的
权限应用于资源及其所有关联的作用域
- 或者,您可以通过利用这两种不同的类型来进一步分离您的权限。您可以通过基于
资源的
权限类型单独为您的资源创建权限,并通过基于范围的
权限类型单独将其他权限与范围关联
<
cd tmp
wget https://downloads.jboss.org/keycloak/8.0.0/keycloak-8.0.0.zip
unzip keycloak-8.0.0.zip
cd keycloak-8.0.0/bin
./standalone.sh