2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

【Java并发实战】偏向锁-轻量级锁-重量级锁,掌握这些知识点再也不怕面试通不过

Java 程序员 后端

前端组件化工程实践

循环智能

AI 组件化 智能化

等保测评机构每年都需要年审吗?年审时候需提供哪些资料?

行云管家

网络安全 等级保护 等保测评 等保办

就这?彻底搞懂单例模式

蝉沐风

Java 面试 设计模式 单例模式

【Spring Cloud 2】注册中心Eureka,java架构面试题spring原理

Java 程序员 后端

【Spring Cloud 8】熔断与限流Sentinel,java现在的主流技术

Java 程序员 后端

【Java后端】2020年最新阿里,java中级面试题库weixin

Java 程序员 后端

【Redis实战】集合类型,unixlinux编程实践教程

Java 程序员 后端

【Spring 持久层】Spring 与 Mybatis 整合,spring教程极客学院

Java 程序员 后端

【Java知识点详解 8】Java反射机制,java项目经验面试题

Java 程序员 后端

【MyBatis-plus】条件构造器详解,mysql索引原理及btree

Java 程序员 后端

【Spring Boot 6】自定义starter,花了6个月肝完阿里技术官的笔记

Java 程序员 后端

【云计算】云的七大分类定义说明

行云管家

云计算 公有云 私有云 云资源

深入理解 TCP 拥塞控制

拍乐云Pano

TCP 音视频 RTC TCP通信

【SpringMVC 笔记】Json 交互处理,顺丰java社招面试

Java 程序员 后端

【Java程序员必知必会的90个细节】1,隔壁都馋哭了

Java 程序员 后端

【Quarkus 技术系列】,Java高级工程师面试答案大全

Java 程序员 后端

【Spring 工厂】反转控制与依赖注入,spring集成mybatis原理面试题

Java 程序员 后端

【SpringBoot系列】配置多环境配置文件,hadoop环境搭建教程

Java 程序员 后端

自定义注解实现方式全解析

小鲍侃java

11月日更

【Spring 基础注解】对象创建相关注解,java开发实战经典答案百度云

Java 程序员 后端

【Spring Boot实战与进阶】AOP的两种动态代理,java注解的实现原理

Java 程序员 后端

【MyBatis 2】MyBatis-Plus,java分布式框架技术方案

Java 程序员 后端

【Spring Boot 23】MyBatis事务管理,java基础知识点思维导图

Java 程序员 后端

【Spring Boot 25】JdbcTemplate配置类 (1),鬼知道我经历了啥

Java 程序员 后端

【SpringMVC 笔记】Json 交互处理(1),面试官都被搞懵了

Java 程序员 后端

【JVM系列5】深入分析Java垃圾收集算法和常用垃圾收集器

Java 程序员 后端

【Spring Boot实战与进阶】Controller的使用及获取请求参数的示例

Java 程序员 后端

重磅|Apache ShardingSphere 5.0.0 即将正式发布

SphereEx

数据库 ShardingSphere Meetup Apache ShardingSphere DateBase

Kafka 3.0 重磅发布,来看下值得关注的新功能

大数据技术指南

kafka 11月日更

【Spring Boot 25】JdbcTemplate配置类 ,设计模式面试题java

Java 程序员 后端

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