2

可能我的理解有误,请指教。

要求:

(1) 用户 A 和用户 B 想访问一个 Web 服务 SayHello。

(2) 只有用户 A 有权限。

(3) SayHello web 服务只返回一个字符串“hello”

之前:

(1) 调用 SayHello,根据 SayHello?wsdl 创建一个客户端。 - 成功

(2)通过ESB创建代理服务SayHelloProxyService,将此代理服务托管给SayHello服务,根据SayHelloProxyService?wsdl创建客户端。 - 成功

现在:

在里面添加 Identity Server,只给用户 A 访问权限,如下图: 在此处输入图像描述

问题

现在,我在想如果我还想调用 SayHelloProxyService,我应该更改客户端的代码吗?携带一些令牌,如用户名或 SayHelloProxyService 什么?如果是这样如何编写客户端代码?也许我的理解是完全错误的,但如果有一个关于这方面的小例子会有很大帮助,有人知道吗?

先感谢您。

4

1 回答 1

2

我的理解是您设置了错误的权限。“配置>用户和角色>角色”中的角色权限仅对服务器本身在本地有效,在您的场景中是IS,但对外部服务无效。

如果您需要 IS 来授权某些服务,而不是更改客户端的代码,您可能希望创建一个简单的 XACML 策略,如 [1] 中所述,并启用 WSO2IS 作为策略决策点。

[1] http://wso2.org/library/articles/2010/10/using-xacml-fine-grained-authorization-wso2-platform

于 2013-03-26T11:29:45.303 回答