写点什么

XACML 终有出头天?

  • 2007-07-04
  • 本文字数:1459 字

    阅读完需:约 5 分钟

XACML ,即可扩展访问控制标记语言(eXtensible Access Control Markup Language),是一份 Oasis 两年多前通过的标准,在上周的 Burton’s Catalyst Conference 会议上演示了 XACML 如何跨厂商平台工作。 XACML 标准提供了一种(标记)语言,用来定义访问授权的决策规则和用于策略决策交换的请求 / 响应协议。XACML 定义了 4 个主要实体:

  • PAP——策略管理点(Policy Administration Point)——基本上是一个存放策略的仓库。
  • PIP——策略信息点(Policy Information Point)——目录或者其他身份证明(identity)的供应者。PIP 可提供被访问的资源的属性,以及试图访问该资源的实体(身份证明)。
  • PDP——策略决策点(Policy Decision Point)——这个组件负责对访问授权的决策。PDP 使用从 PAP 获得的策略以及从 PIP 获得的附加信息来进行决策。
  • PEP——策略实施点(Policy Enforcement Point)——这个组件负责接收对授权的请求。PEP 向 PDP 发送 XAXML 请求,然后根据 PDP 的决策来行动。

要说明的是,XACML 并不是完全独立的。XACML 定义了实现请求 / 响应所必需的消息内容,但没有定义消息交换方面的协议和传输机制。这个问题要用到另一个 Oasis 标准,名为 SAML(Security Assertions Markup Language)。概括来说,XACML 提供了一种确定对资源的访问权限的方法,而 SAML 则提供了一种安全地交换这些信息的方法。

互操作性的之所以重要,不单是因为在一家具有相当规模的企业里几乎不可能存在均一的环境,而且就算你能找到这样的企业,当需要与其他企业合作的时候,你仍然要面对异质环境的问题。

这次互操作演示包括 8 家厂商:BEA、IBM、JBoss/Red Hat、Oracle、CA、Jericho Systems、SymLabs 和 Securent。厂商们演示了几个安全方面的互操作场景, JBoss 的 Anil Saldhana 对此作了描述:

用例: 授权决策
======================== 在授权决策互操作演示中,由 */Vendor A/* (*/PEP-A/*) 的 */PEP/* 产生的 XACML 2.0 授权决策请求,将被 */Vendor B /*(*/PDP-B/*) 的 */PDP/* 正确解读,其中 Vendor A 和 Vendor B 可为参与互操作的任意厂商。

场景一:授权决策:客户访问

客户从浏览器中提交用户名和密码。在身份认证之后,PEP 将客户的用户名用户 Id 和“ViewAccount”操作,在 CustomerAccount Web 应用程序的上下文中打包成 XACML 请求,然后交给 PDP 解读。在此事件中,PDP 可来自不同厂商。场景二:授权决策:客户事务

客户试图购买 500 股 XYZ 股票。PEP 收集此事务的相关信息(举例来说,“Buy”操作和股票数量“500”),然后和其他上下文中的信息一起,打包成 XACML 请求交给 PDP 解读。在此事件中,PDP 可来自不同厂商。场景三:授权决策:客户经理访问

客户经理需要批准请求。PEP 收集关于客户经理的信息,交给 PDP 来处理客户经理的访问。场景四:授权决策:账户经理批准

客户经理需要批准股票购买。PEP 收集关于客户经理的批准的信息,然后询问 PDP 是否允许此批准通过。用例:策略交换

===================
由一家厂商产生的 XACML 策略可被其他厂商的 PDP 访问和使用。

James McGovern 提出了互操作性的另一个方面,事实上 JBoss 也做到了这个方面:

Anil Saldhana 认为 JBoss XACML 2.0 的发布是一件大事。这可能是给 Alfresco 的 John Newton、Intalio 的 Ismael Ghalimi 以及 Liferay 的 Brian Chan 的一个机会,让他们能够非常容易地在他们的产品中加入 XACML 支持,把他们的闭源竞争者们打倒在地。

无论如何,即便用了超过两年时间,看到这个标准终于成熟仍然是一件令人高兴的事,特别是在上面提到的那些用例并不罕见的情况下。

2007-07-04 09:302351
用户头像

发布了 225 篇内容, 共 67.9 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

feign报400处理

Rubble

4月日更

程序员如何快速开发高质量的代码?

利志分享

在线时序流程图制作工具

入门小站

工具

RabbitMQ的高级特性和消息补偿机制

爱好编程进阶

Java 面试 后端开发

Spring-Data-Jpa动态查询(Specification)

爱好编程进阶

Java 面试 后端开发

SpringCloud-分布式配置中心【动态刷新】

爱好编程进阶

Java 面试 后端开发

22年了你还不知道文件包含漏洞?

喀拉峻

网络安全 漏洞

OpenFaaS实战之四:模板操作(template)

爱好编程进阶

Java 面试 后端开发

UML项目实例——抖音的UML图描述

爱好编程进阶

Java 面试 后端开发

【Java面试题】关于String

爱好编程进阶

Java 面试 后端开发

linux之pkill命令

入门小站

Spring Data ElasticSearch基本使用

爱好编程进阶

Java 面试 后端开发

Spring框架JDBC Template使用教程

爱好编程进阶

Java 面试 后端开发

OpenHarmony开源开发者成长计划,寻找改变世界的开源新生力!

科技汇

Scrum Patterns之理解各种团队模式

Bruce Talk

Scrum 敏捷开发 Agile Scrum Patterns

网络安全之渗透靶场实战详解

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

redis的五种数据类型

爱好编程进阶

Java 面试 后端开发

《JVM系列》 第七章 -- 字节码执行引擎

爱好编程进阶

Java 面试 后端开发

【Java从0到架构师】SQL 多表查询

爱好编程进阶

Java 面试 后端开发

SpringCloud Alibaba Nacos 使用详解

牧小农

nacos SpringCloud Alibaba

如何发挥测试策略的指导性作用

KJ Meng

DevOps 研发管理 测试 自动化测试 测试策略

网络协议之:sctp流控制传输协议

程序那些事

Java Netty 程序那些事 4月月更

Shiro认证源码图文解析

爱好编程进阶

Java 面试 后端开发

Spring(三)

爱好编程进阶

Java 面试 后端开发

【SpringBoot搭建个人博客】- 实体类构建

爱好编程进阶

Java 面试 后端开发

redis优化系列(三)解决主从配置后的常见问题

乌龟哥哥

4月月更

自己动手写Docker系列 -- 6.3 手动配置容器网络(上)

Go Docker 4月月更

读《Software Engineering at Google》(15)

术子米德

架构师成长笔记

在线Excel转CSV工具

入门小站

工具

【PIMF】OpenHarmony啃论文俱乐部—在ACM Survey闲逛是什么体验

离北况归

ACM OpenHarmony Openharmony啃论文俱乐部 欧建深教练 PIMF团队

Java多线程归纳整理

高山觅流水

多线程

XACML终有出头天?_SOA_Arnon Rotem-Gal-Oz_InfoQ精选文章