繁体   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