OPA看起来可能比AuthZForce更简单
无论采用哪种方法,都有一些利弊。首先,正如您所意识到的那样,OPA和AuthZForce都是ABAC实现(您可以在这里和这里阅读更多关于ABAC的内容)。
OPA
Open Policy Agent是一个相对较新的模型,主要(但不仅限于)解决基础设施(例如Kubernetes)的细粒度授权问题。他们甚至为Istio和Kubernetes提供了预构建的集成点。 OPA提供PEP(执行/集成)和PDP(策略决策点),尽管它不一定称之为这样。它使用的语言称为REGO(DATALOG的派生语言)。
OPA本身似乎是一个事实上的PEP和PDP
是的,您完全正确,这将使您负担起为PIP实施替代方案的责任。
我感觉自己淹没在文档中,而且OPA自己的文档似乎缺少很多解释如何完成这项工作。
联系Styra - 他们销售围绕OPA的服务。或者重新考虑你的选择,研究XACML(见下文)。
缺点:
- 语言(REGO)不易理解。
- 该语言没有标准化。
- OPA不支持策略信息点(PIP) - 这是设计上的问题。
实现:
我已经在互联网上寻找了OPA作为ABAC实现的示例,但我什么也没找到。
看看Netflix所做的
工作。那是我所知道的主要实现。您还可以联系OPA背后的
Styra公司,他们将能够提供帮助。
AuthZForce
AuthZForce是XACML(可扩展访问控制标记语言
xacml)标准的开源Java实现。它提供了完整的ABAC实现(PAP,PEP,PDP,PIP)。它是
Fiware(一个开源倡议)的一部分,并由
Thales团队积极开发。
AuthZForce缺点
- 它似乎没有图形界面来编写策略。我找到了关于KEYROCK PAP的参考,但没有看到任何截图。
- 它不支持ALFA,这是授权的缩写语言。
其他实现
您可以考虑许多其他XACML实现(包括开源和商业):
- AT&T XACML(一种访问控制语言)
- SunXACML(另一种访问控制语言)
- WSO2 - 其WSO2身份服务器平台的一部分 - 名为Balana
- Axiomatics(商业产品 - 这是我工作的地方) - 我们拥有广泛的客户群,从财富50强公司到敏捷初创公司都在使用我们的平台。
XACML和ALFA的好处
XACML / ALFA的关键优点之一是它们是标准并且被广泛采用。该标准已经存在于2001年,并与其他标准(例如SAML,OAuth和SCIM)进行互操作。