我有一个项目,需要ABAC对我的项目资源进行访问控制。我一直在考虑OPA和authzforce作为实现ABAC的选项,OPA看起来可能比authzforce要简单一些。我看到OPA将自己比作其他系统和范例,但是它为ABAC提供的例子还有很多需要改进的地方。主要是因为ABAC需要使用执行策略、围绕策略进行决策、获取决策的主题和对象属性的点。我觉得OPA有所有的东西,除了最后一部分,但是很难判断这是否是真的,因为他们的ABAC例子只是一次性的。
我一直在互联网上寻找OPA被用作ABAC实现的例子,但我没有发现任何东西。
我的项目是一个web应用程序,允许终端用户为他们的资源创建资源和创建策略。我计划为最终用户创建一个UI来创建他们的策略。我的计划是抽象它的编码方面,而不是给他们下拉和按钮这个UI将使用自定义语法的幕后,我将解释为一个OPA策略。
我面临的主要问题是如何将其实现为ABAC,它是否与构建将获取主题、对象和环境属性并在其与OPA之间创建粘合剂(实质上创建PIP)的部分一样直接,因为OPA本身似乎是一个事实上的PEP和PDP?
我觉得我沉浸在文档中,而OPAs自己的文档中似乎有相当多的缺失来解释如何做到这一点。
发布于 2019-08-02 15:53:51
OPA看起来可能不像authzforce那么复杂
这两种方法各有优缺点。首先,正如您所认识到的,OPA和AuthZForce都是ABAC实现(您可以阅读更多关于ABAC 这里和这里的内容)。
OPA
only是一种相对新颖的模型,其主要目标是(但不仅仅)解决基础设施(例如Kubernetes)的细粒度授权问题。他们甚至为Istio和Kubernetes建立了预建的集成点。OPA提供了一个PEP (强制/集成)和一个PDP (策略决策点),尽管它不一定这样称呼它们。它使用的语言称为REGO (DATALOG的派生语言)。
OPA本身似乎是一个事实上的PEP和PDP。
是的,你是绝对正确的,这就给你增加了为PIP实现替代方案的负担。
我觉得我沉浸在文档中,而OPAs自己的文档中似乎有相当多的缺失来解释如何做到这一点。
联系Styra --他们在OPA周围销售服务。或者,重新考虑您的选择,并查看XACML (见下文)。
弊端
实现
我一直在互联网上寻找OPA被用作ABAC实现的例子,但我没有发现任何东西。
看一看他们在Netflix做的工作。这是我所知道的主要实现。你也可以接触到斯提拉,OPA背后的公司,他们将能够提供帮助。
AuthZForce
AuthZForce是XACML (eXtensible Access Control Markup Language xacml)标准的开源Java实现。它提供了一个完整的ABAC实现(PAP、PEP、PDP、PIP)。它是菲瓦尔 (开源项目)的一部分,并且是由泰勒斯队积极开发的。
AuthZForce缺陷
实现
您还可以考虑XACML的许多其他实现(无论是开源的还是商业的):
XACML和ALFA的好处
XACML / ALFA的主要优点之一是它们是标准并被广泛采用。该标准已于2001年问世,并与其他标准(如SAML、OAuth和SCIM )进行互操作。
发布于 2019-08-08 16:00:44
也许最具体的答案是详细描述Chef如何自动使用OPA实现应用程序授权。
更广泛地说,我们计划编写一份指南,描述如何使用OPA进行应用程序授权--它需要更多的细节,而不是这样的答案。但是,使用OPA (或任何策略引擎)进行应用程序授权在一定程度上取决于您的应用程序、其体系结构、SLA等。但是,下面是一些需要考虑的关键问题:
我们一直很高兴通过您的应用程序的细节,并帮助您找到适合OPA的合适人选。可以自由地接触OPA松弛信道。
https://stackoverflow.com/questions/57306834
复制相似问题