我正在研究使用 WSO2 API Manager 1.0 来创建一个 API Store 以供我公司内部使用的可能性;我正在尝试弄清楚它是否符合所有要求。
特别是我想了解是否可以使用基于 XACML 策略的 API 访问授权机制:我找到了几篇描述如何使用 WSO2 ESB 和 WSO2 实现“XACML 细粒度授权”的文章是。
所以我的问题是,是否有可能(以及如何)配置 WSO2 API 管理器以使用 XACML 策略强制执行 API 访问,或者,如何配置它以使用 WSO2 IS 作为授权服务(作为 API Manager 似乎非常基于 ESB)。
谢谢!
最佳答案
不可能将 WSO2 API 管理器配置为 XACML 引擎,但您当然可以将其配置为一个策略执行点 (PEP)与 WSO2 身份服务器 (IS) 一起充当策略决策点(PDP/XACML 引擎)和检索授权决定。
正如您所指出的,WSO2 API 管理器网关是基于 WSO2 企业服务总线 (ESB) 的。在 ESB 中,通过向 inSequence 添加一个 Entitlement Mediator 来实现策略执行(因为您一定已经在你提到的文章中)。在 API 管理器中执行策略的方式或多或少是相同的。
但是目前没有 UI 支持将中介添加到 WSO2 API 管理器中的序列。因此,您必须使用 WSO2 API Manager 管理控制台 UI 中的源代码 View 来编辑配置文件。一种更简单的方法是首先尝试使用 WSO2 ESB 中的管理控制台 UI 添加权利调解器,然后将相关配置从其源 View 复制粘贴到 api 元素的 inSequence 在 WSO2 API 管理器中。
还有一个名为 api 处理程序 的概念,可以在 API 级别使用。如果您认为默认的权利调解器不足以/不适合您的要求,这可能对您有用。这种方法的优点是您可以灵活地编写具有任何逻辑的自定义 PEP 并将其放入请求流中,但它的另一面是您必须编写自己的代码。
关于WSO2 API 管理器和 XACML 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11949590/