标签: abac

ABAC with keycloak - 在策略中使用资源属性

我正在努力实现的目标

使用以下策略保护 Keycloak 中的资源:

if (resource.status == 'draft') $evaluation.grant(); 
else $evaluation.deny();
Run Code Online (Sandbox Code Playgroud)

根据他们的官方文档和邮件列表响应,基于属性的访问控制似乎是可能的,但是,我找不到让它工作的方法。

我试过的

  • 使用授权服务:我无法弄清楚在何处以及如何从资源实例注入属性。
  • 使用授权上下文:我希望获得与资源和范围相关联的策略,以便我可以自己评估它们。

到目前为止,我已经设法用这两种方法一无所获。老实说,我对授权服务中使用的术语感到不知所措。

问题 在 keycloak 中定义策略时如何使用资源实例的属性?

abac keycloak keycloak-services

5
推荐指数
1
解决办法
4427
查看次数

如何在 PHP 中实现基于属性的访问控制 (ABAC)

我只是找到了 AT&T 的一个框架来构建 ABAC。

该框架使用遵循 XML 格式的 XACML 来创建规则。但这个框架只是针对Java实现的。

但是,我正在使用 PHP 并使用 JSON 来编写规则。

我的解决方案正确吗?您能推荐一些支持 PHP 的框架或解决方案吗?

php json xacml abac

5
推荐指数
1
解决办法
6885
查看次数

Keycloak 将组设置为资源的所有者

我是 Keycloak 的新手,我尝试在我的解决方案中将其用作身份验证服务器。

我有以下实体的模型:设备 归某些用户所属的特定公司所有。具有admin角色的用户可以向普通用户授予查看某些设备集的权限,但只能授予属于管理员公司的设备。因此,除管理员之外的所有用户只能查看公司所有设备的一个子集。基于这些需求,我决定将公司作为团体和设备作为 Keycloak 的资源。为了评估权限,我选择了基于规则的策略。

问题是——我可以将组设置为资源的所有者来检查策略中的这种关系吗?

如果有人在 keycloak 方面更有经验并且知道如何更好地表示这种模型,请提供帮助。

先感谢您。

authorization abac keycloak

5
推荐指数
1
解决办法
2379
查看次数

数据库设计:RBAC 还是 ABAC?

我有一个 SaaS 服务,多个用户可以在其中相互协作。直到现在,同一订阅帐户下的用户可以共享相同的数据库并相互查看/编辑/删除所有内容。

现在我想实现一个权限系统,以便用户只能执行特定操作,例如查看、编辑、更新和删除内容(在我的 SaaS 系统上,内容主要是客户卡片列表)。

我的第一个猜测是使用 RBAC 技术,定义不同操作的角色和位掩码,例如

  • 查看客户卡
  • 更新客户卡
  • 删除客户卡
  • 添加客户卡

这些权限与单个卡片实例无关,而不是用户可以执行的通用操作。在任何情况下,第一个(查看)似乎都是必需的,因为在无法看到任何卡片的情况下使用系统是不可能的。

不幸的是,我想我还需要某种每张卡的权限。例如,管理员用户可能希望让给定用户仅查看卡片的一个子集,而不是所有卡片。或者,管理员用户可以允许一组用户在特定卡片(或特定卡片)上进行协作,从而有效地跨用户划分卡片列表。无论如何,我从未遇到过非管理员用户可以为自己或其他用户设置此类权限的场景。

RBAC 是否足以编码这样的要求?还是我需要切换到ABAC?

permissions database-design rbac user-permissions abac

5
推荐指数
1
解决办法
1712
查看次数

用于创建 XACML 3.0 策略的开源策略编辑器工具

我在我的项目中使用 XACML 3.0 进行授权,这是他们的任何开源策略编辑器工具,以便我可以动态创建策略。

authorization xacml xacml2 xacml3 abac

4
推荐指数
1
解决办法
6327
查看次数

如何在GKE kubernetes集群中调试ABAC到RBAC转换?

GKE日志RBAC权限事件在哪里?

在具有kubernetes版本v1.6的Google容器引擎(GKE)群集上,默认情况下启用RBAC授权.显然,ABAC也可以作为后备授权启用,以便简化现有集群到新授权方案的转换.这个想法是第一个RBAC试图授权一个动作.如果失败,应将其记录在某处,然后咨询ABAC以允许该操作.这应该使群集管理员能够在最终关闭ABAC之前检查日志是否缺少RBAC权限.

我们有一些集群可以禁用GCP日志记录/监控,而是使用自己的ELK堆栈.为了确保我已经使用GCP的云记录和监控创建了一个测试集群,但仍然可以在任何地方找到任何RBAC事件.测试pod是一个prometheus服务器,可以发现并抓取其他pod和节点.

rbac kubernetes abac google-kubernetes-engine

4
推荐指数
1
解决办法
768
查看次数

XACML中目标和条件之间的差异

我想修复XACML语言中目标和条件之间的差异以及何时应使用目标或条件。

authorization access-control xacml alfa abac

4
推荐指数
1
解决办法
316
查看次数

在 ABAC 中定义资源

我想在 ASP .NET Core 中开发基于属性的访问控制 (ABAC) Web API,其他企业可以在其中定义他们的环境、资源、操作和主题,因为我们不希望开发人员在代码中硬编码详细信息。

我希望你们帮助我更多地了解这种情况下的环境和资源,以及如何为用户提供对特定资源的访问权限。

例如,在我们的一项业务中,我们可以定义员工进入。我想说:“员工A”在“考勤应用程序”环境中“添加”了对资源“员工考勤”的访问权限。

首先,这个场景是否基于ABAC组件正确定义?如果是这样,我如何提供对特定数据库中现有资源的访问?环境到底是什么?

sql asp.net performance analysis abac

4
推荐指数
1
解决办法
571
查看次数

是否始终需要ACL?

对于具有高度复杂的访问控制规则的Web应用程序,您是否始终使用ACL?

在确定用户权限时,我有很多考虑因素,包括:

  • 他们登录了吗?
  • 他们是管理员还是普通用户?
  • 他们在图表中浏览节点吗?
  • 他们在浏览什么类型的节点?
  • 它们与节点的关系是什么(即节点的路径)?
  • 用户的默认设置是什么?
  • 节点的默认设置是什么?
  • 将用户连接到节点的图形边缘的设置是什么?
  • 等等

开发ACL证明是困难的.过了一会儿,我采取了对每个动作顶部的基本属性进行"if/then"检查,例如if(isAdmin) {...}

这似乎工作正常,我想知道是否应该将其作为永久解决方案留在原地.因此,问题是:访问控制的复杂性是否会超过ACL?或者只是我需要更努力一点?

acl design-patterns access-control rbac abac

3
推荐指数
1
解决办法
2604
查看次数

XACML 是否实现了“NOT EQUAL”功能?

浏览 OASIS XACML V3 规范,我没有找到任何对实现“字符串不等于”操作的逻辑函数 [此处] 的引用。缺少的功能是:

<Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-not-equal">
Run Code Online (Sandbox Code Playgroud)

问题:是否有省略此功能的原因,或者是否有通过代码修改的良好实践,允许规则分析人员绕过这种情况?

authorization access-control xacml xacml3 abac

3
推荐指数
1
解决办法
922
查看次数