簡體   English   中英

SOAP Web 服務上的 XACML 應用程序

[英]XACML application on SOAP Web Services

我是網絡服務的新手,我想知道一些問題的答案。

首先,我知道REST APIS 可以通過擁有其余端點的 URL 來使用,另一方面( SOAP ),除非您開發客戶端,否則您不能使用任何遠程SOAP WS 這是正確的嗎? 如果是,這是兩大家族之間的唯一區別嗎?

其次,出於安全目的,我想在某些SOAP Web 服務上應用XACML 我做了一個圖,恢復了XACML的整個過程。

使用 XACML 圖的請求/響應過程

我用簡單的 2 種方法開發了一些基本的SOAP Web 服務,但我不知道應該從哪里開始XACML代碼和配置。 我要求你們提供一些有用且有用的鏈接來應用XACML安全過濾器。

您可以在Colm O hEigeartaigh 的博客(Colm 是主要的 CXF 開發人員之一)上找到執行基於 XACML (XACML 3.0) 授權的 CXF 攔截器示例。 CXF 攔截器的實際源代碼: XACML3AuthorizingInterceptor 它使用 OpenAZ 作為 XACML 實現,但您可以調整它以使用另一個 XACML 實現,例如 David Brossard 在這里提到的 Axiomatics,或 AuthzForce(支持嵌入式遠程 RESTful PDP 模式),或XACML末尾提到的其他實現TC 的頁面

CXF 攔截器的第一個重要部分是在handleMessage(Message message)方法的開頭:

SecurityContext sc = message.get(SecurityContext.class);

SecurityContext為您提供有關經過身份驗證的用戶的信息,例如用戶角色,您可以將這些信息用作 XACML 請求中的 XACML 主題屬性。

該代碼使用DefaultXACML3RequestBuilder 類進一步創建 XACML 請求, 該類使用CXFMessageParser從 CXF Message中提取其他信息 - 您可以在cxf-rt-security-saml庫中找到 - 例如 SOAP 服務名稱、操作名稱(如定義在 WSDL 中)和端點 URI:

 CXFMessageParser messageParser = new CXFMessageParser(message);
 ...
 String actionToUse = messageParser.getAction(action);
 ...
 QName serviceName = messageParser.getWSDLService();
 QName operationName = messageParser.getWSDLOperation();
 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM