1

我正在尝试使用 XACML 进行授权。

我已经从普通的 Axis2 拦截器成功地与 WSO2 身份服务器 (PDP) 通信。

现在我正在尝试使用 Wso2 ESB 作为 PEP(在下面的示例中提到)

http://wso2.com/library/articles/2010/10/using-xacml-fine-grained-authorization-wso2-platform/

问题是我无法理解如何从 Web 应用程序调用 ESB?在上面的链接中,他们使用 java 客户端连接 ESB,通过调用 ESB 的代理服务和 UT Security。

我不确定这个例子中给定的 Java 类是否是正确的方法。因为它需要代理服务及其安全策略的知识。

我还看到,如果你想抽象你的 PDP,那么将来你可以选择用任何其他新的 PDP 替换它,那么你应该使用 WS-XACML 标准来进行 PEP 到 PEP 的通信。

我还没有找到任何关于这个的样本,

有没有其他标准方法可以实现这一目标?或任何有用的例子。

4

1 回答 1

1

WSO2 ESB 包含称为权利中介者的 PEP。ESB 可用作后端 Web 服务的安全网关。让我解释一下 ESB 的一些用例。例如,您的系统中有一些遗留服务(或带有 SOAP 和 REST 的标准 Web 服务)。您需要为该后端服务应用安全性(身份验证和授权)。因此,您可以在不更改现有系统的情况下使用 WSO2 ESB 来保护这些服务并保护它们。您的现有服务可以使用 ESB 轻松公开为基于标准 SOAP 的 Web 服务(代理服务)或 REST API。然后,您可以使用 Web 服务安全性(WS-Security,是的 UT 或任何其他)或 API 安全性(OAuth/Basic Auth)保护它们。您可以使用这些方法轻松管理身份验证。如果您需要细粒度授权,

好的,我不确定您的确切情况。我认为,您有一个 Web 应用程序,您需要调用一个 Web 服务。你已经通过它使用 ESB 来实现授权你是如何进行身份验证的?您可能有一些已在 Web 应用程序中实现的身份验证机制?然后您可以获得经过身份验证的用户的用户名,该用户名值可以在 HTTP 标头中发送到 ESB(假设 Web 应用程序和 ESB 在内部网络中并使用 SSL)。在 ESB 冥想流程中,您可以提取该用户名并将其设置为 Entitlement mediator(因此您不需要始终应用 UT)。唯一的要求是用户名必须可供授权调解器工作(很简单,用户必须在授权之前进行身份验证)

因此,从 Web 应用程序到 ESB,您不需要 java 客户端,它可以是任何可以调用您的 Web 服务的客户端。

WS-XACML 是一些旧的且不流行的配置文件。我不认为使用它更好。与 PEP-PDP 通信的标准方式是 REST/JSON 配置文件。但是 WSO2IS 还不支持它。您可以从这里找到更多详细信息

于 2014-11-30T15:55:05.113 回答