2013-04-30 114 views
0

我想實現對Web服務(操作,消息等)的訪問控制。我的發現表明這可以通過WS-Policy或XACML完成。在我看來,Axis2具有良好的WS-Policy實現,並且可以定義斷言來控制對每個操作的訪問權限。 我有一些問題:對Web服務的訪問控制

1)假設我有到位的WS-Policy XML文件,我怎麼它包含在WSDL(使用API​​將其包括在生成WSDL或手動)

2)假設我有一個應用程序設計,客戶端通過駐留在存儲庫中的代理髮現服務,是否將此策略集成在此存儲庫中的wsdl中,並且每個想要實現服務的提供者都遵循borker repo中的wsdl +策略,來自回購協議的wsdl並通過自己的政策擴充它? 在Axis2的上下文中,哪種方法是正確和可行的

3)我可以通過使用帶UDDI的WS-Policy來限制客戶端可以在回購中搜索哪些服務? Axis2是否支持?

非常感謝!

回答

0

WS-Policy是一種非常通用的策略語言,並不特別針對授權或訪問控制。 WS-Policy更多地關注消息應該發生什麼(例如簽名,加密等)。可以從WSDL引用WS-Policy策略,也可以在從服務存根生成WSDL後,使用XSLT將策略嵌入到WSDL中。

XACML更具體的訪問控制。從這個意義上說,它可能更適合你的用例。有幾種開源和供應商的選擇。 Axiomatics是我工作的供應商,它擁有一個攔截Web服務消息並使用XACML進行細粒度授權的JAX-WS攔截器。

關於你提到的第三個問題:

我可以限制哪些服務客戶端可以通過使用 的WS-Policy與UDDI回購搜索? Axis2是否支持?

我不相信你能做到這一點。此外,UDDI不再積極開發。標準有點舊了。

底線:WS-Policy更多的是關於如何公開你的服務以及如何處理操作和消息。 XACML更多地關於實際的業務授權邏輯。