对Web服务的访问控制

时间:2013-04-30 20:02:08

标签: web-services axis2 axis xacml

我想实现对Web服务的访问控制(操作,消息等)。我的发现表明,这可以通过WS-Policy或XACML完成。在我看来,Axis2具有良好的WS-Policy实现,并且可以定义用于控制对每个操作的访问的断言。 我有一些问题:

1)假设我有WS-Policy xml文件,如何将其包含在WSDL中(使用API​​将其包含在生成的WSDL中或手动)

2)假设我有一个应用程序设计,其中客户端通过驻留在存储库中的代理发现服务,是在此存储库中的wsdl中集成的策略,并且每个想要实现服务的提供者都遵循borker中的wsdl +策略repo或每个提供商从repo获取wsdl并使用自己的策略扩充它? 哪种方法在Axis2的背景下是正确和可行的

3)我可以通过在UDDI中使用WS-Policy来限制客户端可以在回购中搜索哪些服务? Axis2支持吗?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

WS-Policy是一种非常通用的策略语言,并非特别针对授权或访问控制。 WS-Policy更多地关注消息应该发生什么(例如签名,加密......)。可以从WSDL引用WS-Policy策略,也可以在从服务存根生成WSDL后使用XSLT将策略嵌入到WSDL中。

XACML对访问控制更加具体。从这个意义上说,它可能更适合您的用例。有几种开源和供应商的替代品。 Axiomatics,我工作的供应商,有一个JAX-WS拦截器拦截您的Web服务消息,并使用XACML应用细粒度授权。

关于你的第三个问题:

  

我可以使用限制客户端可以在回购中搜索的服务   使用UDDI的WS-Policy? Axis2支持吗?

我不相信你能做到这一点。此外,UDDI还没有积极开发。标准有点旧。

结论:WS-Policy更多的是关于如何公开您的服务以及如何处理操作和消息。 XACML更多地是关于实际的业务授权逻辑。

相关问题