问题标签 [abac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authorization - XACML:如何控制对资源中属性的访问
我知道 XACML 可以提供细粒度的控制来访问基于各种类别(如主题、资源、环境和操作)的资源。
但是,一旦进行评估并决定获取资源,我们是否可以控制用户/主题可以访问资源中的哪些字段/属性?
例如,有一个名为 Customer 的资源具有以下字段。
客户:{姓名,isVip,电话号码}
现在,如果我有一个销售代理访问此信息,我想仅向少数选定的销售代理显示 VIP 客户的电话号码。
这应该是对 GET customer info API 的响应:
由普通销售代理调用:{name, isVip}
由选定的销售代理致电:{name, isVip, phoneNumber}
我可以使用 XACML 实现这一目标吗?如果是,如何?
authorization - 使用 XACML 的复杂授权
我的公司正在寻求实施集中式安全服务,而 XACML 似乎是一个流行的标准。我有一个复杂的授权场景,我一直无法弄清楚如何使用 XACML 策略的属性来定义它。
我正在使用的系统有几个与此身份验证场景相关的部分:
- 用户创建项目来组织他们的工作。每个项目都有一个团队成员和查看者列表(可以查看项目但不能修改它的用户或组)。
- 在这些项目中,用户创建配方来描述应该如何制造某些东西。
- 用户请求由另一组制造这些配方。
如果用户想要查看特定项目的食谱,则必须满足以下任何条件:
- 用户必须是配方的所有者(编写它的人)。
- 用户必须是创建配方的项目的团队成员。(直接或通过群组成员资格)
- 用户必须是制造配方的组的成员。(他们需要查看制造它的配方。)
- 用户必须是在过去两周内制作配方的组的成员。(即,在完成制造配方的请求后,他们可以继续查看配方两周以纠正任何问题。)
- 用户必须是管理员。
使用这些规则,确定用户是否可以查看食谱所需的属性似乎包括:
- 用户
- 用户的组成员身份(用于项目访问、制造组或管理员访问)
- 项目组成员和观众
- 配方的制造请求
问题:
- PIP 将如何收集这些信息?直接从数据库?通过对存储此信息的系统的服务调用?
- XACML(通常)如何表示此信息?我见过的大多数示例都使用不使用数据集合的简单模型(例如制造请求列表);直接在被访问的对象上简单地属性。数据会以某种方式展平,例如“isBeingManufacturedByUserGroup”吗?(如果是这样,该属性的值将如何确定?)
- 如何构建政策来评估这些规则?
- 有没有其他方法可以处理这种授权(除了 XACML)?OAuth 2.0 是否能够更轻松地处理此类问题?
mysql - 访问控制:具有附加组成员身份而不是对象属性的 RBAC
给定一个根据某些用户权限显示对象(例如电影)的应用程序。
显示或创建对象的一般权限被实现为具有角色和权限的 RBAC。
访问具有某些属性的对象(例如具有“戏剧”属性的电影)的特定权限应通过成员资格来实现。这意味着该对象不具有“戏剧”属性,它是“戏剧”组的成员。如果用户和对象是同一组的成员,则用户具有访问该对象的特定权限。可以有不同的组用于显示、创建或删除对象,例如简单的查看器组或某种编辑器组。此外,还有一个表格指定了哪些组类型与对某些对象的某些操作相关。例如,对象“电影”上的动作“表演”的相关组可以是“类型”和“年龄”(电影对某些观众的适合性)。
以所描述的方式实现它的原因是在不接触代码的情况下具有很大的灵活性。可以在数据库中处理对组的更改。
通用数据库设计:
示例:电影“The Revenant”是“genre:drama”和“age:18”组的成员。如果他也是这些组的成员,则用户可以访问它。
这听起来像是一个好方法吗?是否有与这种方法类似的现有解决方案?它是否有很大的缺点(例如,数据库查询太多——每天可能有几百个用户)?
请与我分享您对这个问题的看法——选择“戏剧”作为示例的类别并非巧合;)我只是不知道这是一个死胡同还是我正朝着正确的方向前进。我在这一点上停留了很长一段时间。
kubernetes - Kubernetes ABAC 模式不起作用
我发现一些人试图解决这个问题,这里和这里只有一些相关的帖子,但并没有为我解决这个问题。
问题:我想使用 ABAC 策略为我的集群创建一个只读用户。我的集群有 3 个 master 和 3 个 worker,版本 1.4.7 托管在 AWS 上。
我在所有 3 个主机上都编辑了 manifests/apiserver.yml(添加了这 3 行 - 在文件底部,当然我安装了相关路径等):
- --token-auth-file=/etc/kubernetes/policy/user-tokens.csv
- --授权模式=ABAC
- --authorization-policy-file=/etc/kubernetes/policy/apiusers.yml
我的 apiuser.yml 看起来像这样:
我的 users-token.csv 看起来像这样:
我的 kubeconfig 文件中有这个:
当我尝试kubectl get nodes
失败时,如果相关,我可以使用 --v=8 打印输出,但它基本上说Forbidden(403)
. 在我看来,我在这里遗漏了一些基本的东西,该政策已经到位并阻止了一切和所有人,尽管它应该允许经过身份验证的用户只读权限。
任何形式的帮助或建议将不胜感激。
authorization - ABAC PAP信息来源
这可能是关于 ABAC 的一个非常基本的问题,我没有找到明确的答案。 PAP 使用哪些软件项目工件(例如需求规范)来创建 XACML 策略文档?
authorization - 如何编写一个用户可以访问 XACML 中的两个资源的策略?
我需要定义一个具有这两个要求的策略:
(1) 任何用户都可以访问(读、写等)资源
http://www.example.com/info1
和http://www.example.com/info2
(2) 对任何资源的任何读取动作(读)只能由属于该组的用户
admin
访问manager
。
此策略必须以 XACML 编写。
然后,我解决的是:
(语法高亮链接:https ://gist.github.com/Fhernd/62c6e387767cc4fc79aead3a669ea4c0 )
我实施这两条规则的方式是否正确?O 更准确地说,规则的使用AnyOf
是正确的Rule #1
?,是否可以省略该Condition
规则的元素?
我可以在Target>AnyOf>AlloOf
元素中只有一个读取操作吗?
authorization - WSO2 身份服务器 - 将请求中的多个属性发送到 WSO2IS 中的自定义策略信息点 (PIP)
我正在使用 WSO2IS 5.3.0,并按照此网站上的说明进行操作:https ://docs.wso2.com/display/IS530/Writing+a+Custom+Policy+Info+Point
我已经成功实现了自定义 PIP 属性查找器 (KMarketJDBCAttributeFinder),到目前为止一切顺利。我遇到的问题是我想发送多个属性,但 AttributeFinder 只选择一个。接下来,我的政策和要求:
XACML 政策:
XACML 请求:
如您所见,我将三个属性作为资源类别的一部分发送;但是当我调试代码时,我只看到其中一个属性被拾取(其他属性被忽略)
另外,从请求和政策中,我使用了海关 AttributeId:urn:my:custom:id:data-one
和urn:my:custom:id:data-two
¿如何发送多个属性(不使用“多个请求”选项,我只发送一个请求)并确认我的自定义属性查找器 PIP 扩展正确获取了所有属性?
json - WSO2 身份服务器 XACML JSON 请求导致“不确定”[找不到 AttributeDesignator 属性]
我尝试使用 POSTMAN 向 wso2 授权端点发送 JSON 请求
这是我在身份服务器中发布的策略:
这是我发送的 JSON 请求:
但无论我尝试什么,它总是给我“不确定”的回应
我也尝试自己的政策和要求,但我总是得到相同的回应
到底是怎么回事?
php - PHP多级授权
我为一家公司做了一个系统,他们在其他省份有几个分支机构。每个分公司都是分开的,这家公司的老板要求我们不要让branch_1的经理看到或控制branch_2的数据和它的反相。像这样通过所有分支机构。每个分支机构有多名员工,一个分支机构的每个员工都可以插入该分支机构的相关数据,员工不能对数据进行其他控制。我用纯PHP和MySQL制作了系统。最终我想要一个好方法来进行这个项目。
database - 如何在 wso2 身份服务器中对自行创建的数据库执行 xacml 策略?
我刚开始使用 wso2 身份服务器。我想知道我们如何通过 WSO2 身份服务器管理自行创建的数据库,我们可以在该数据库上应用使用 WSO2 tryit 工具创建的 xacml 策略吗?怎么做到呢?任何帮助,将不胜感激。谢谢你。问候