写点什么

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:302101
用户头像

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

关注

评论

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

vue为什么v-for的优先级比v-if的高?

bb_xiaxia1998

Vue

【一Go到底】第三天---变量的使用

指剑

Go golang 10月月更

【深度讲解系列】SpringBoot入门

Geek_65222d

10月月更

React循环DOM时为什么需要添加key

beifeng1996

React

基于kube-scheduler-simulator编写自己的调度程序

琦彦

k8s 调度 kube-scheduler 10月月更

深入理解Node.js的进程与子进程

coder2028

node.js

Node.js实现大文件断点续传

coder2028

node.js

js函数式编程讲解

hellocoder2029

JavaScript

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

React

webpack配置完全指南

Geek_02d948

webpack

MFC|双缓存绘图机制

中国好公民st

c++ qt 10月月更

Java线上惨痛踩坑记录,你也一定遇到过

一灯架构

Java java面试 10月月更

微服务标准化

穿过生命散发芬芳

微服务 10月月更

js进阶手写常见函数

hellocoder2029

Vue

【愚公系列】2022年10月 Go教学课程 017-分支结构之IF

愚公搬代码

10月月更

Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧

琦彦

Go goland 10月月更 live template

vue面试之Composition-API响应式包装对象原理

bb_xiaxia1998

Vue

Vue3入门指北(七)事件处理

Augus

Vue3 10月月更

你是怎样解决跨域问题的?-面试必问

loveX001

JavaScript

环形链表 II

掘金安东尼

算法 10月月更

分享Go书籍-《Go Web编程》

沙漠尽头的狼

从输入URL到渲染的过程中到底发生了什么?

loveX001

JavaScript

网络爬虫与http+ssl(1)

张立梵

Python. 爬虫必备知识讲解 10月月更

变量使用范围

理想何止三旬

变量

webpack配置优化,让你的构建速度飞起

Geek_02d948

webpack

Python应用之阿姆斯特朗数

芯动大师

Python语法 10月月更 阿姆斯特朗数

存储优化--查询分离

喵叔

10月月更

数据产品经理实战-项目管理

第519区

项目管理 数据产品经理

2022-10-03:给定一个正数n,比如6 表示数轴上有 0,1,2,3,4,5,6 <0 或者 >6 的位置认为无法到达 给定两个数字x和y,0<= x,y <= n 表示小人一开始在x的位置,它

福大大架构师每日一题

算法 rust 福大大

大数据ELK(十二):Elasticsearch编程(环境准备)

Lansonli

ES 10月月更

架构师的十八般武艺

agnostic

构架师

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