也许我的理解是错误的,请指教。
要求:
(1)用户A,用户B想要访问Web服务SayHello。
(2)只有用户A有权限。
(3)SayHello Web服务只返回一个字符串“hello”
此前:
(1)要调用SayHello,请根据SayHello?wsdl创建一个客户端。 - 成功
(2)通过ESB创建代理服务SayHelloProxyService,将此代理服务托管到SayHello服务,根据SayHelloProxyService?wsdl创建客户端。 --Success
立即
在内部添加Identity Server,仅授予用户A访问权限,如下图所示:
问题:
现在,我在想是否还想调用SayHelloProxyService,我应该更改客户端的代码吗?携带一些令牌,如用户名或什么SayHelloProxyService?如果是这样如何编写客户端代码?也许我的理解是完全错误的,但是如果有一个小例子会有很大的帮助,那么有人可以知道吗?
提前谢谢你。
答案 0 :(得分:2)
我的理解是你设置了错误的权限。 “配置>用户和角色>角色”中的角色权限仅在本地对服务器本身有效,即您的方案中的IS,但不适用于外部服务。
如果您需要IS来授权某些服务,而不是更改客户端的代码,您可能需要创建一个简单的XACML策略,如[1]中所述,并启用WSO2IS作为策略决策点。
[1] http://wso2.org/library/articles/2010/10/using-xacml-fine-grained-authorization-wso2-platform