Cams:一个经典、优美、概念清晰的基于Java的集中式认证和授权实现(一)

2014-11-23 23:14:06 · 作者: · 浏览: 0

Cams:一个经典、优美、概念清晰的基于Java的集中式认证和授权实现


[pre]Cams站点: www.cafesoft.com

翻译整理:胡拥军 hu.yong.jun@ctgpc.com.cn 2003-05-13


==================================================================================================
一.介绍 2
使用Cams进行集中访问管理 2
Cams服务器 3
安全域 4
访问控制服务 5
认证服务 7
Cams代理 8
Cams代理类型 8
Web单点登录(SSO) 8
二.与实际应用快速集成 10
步骤1 - 配置安全域注册 11
步骤2 - 配置系统安全域 12
步骤3 - 配置mydomain安全域 14
步骤4 - 配置Cams Web代理 15
步骤5 - 测试 15
==================================================================================================


========
一.介绍
========

Cafesoft访问管理系统(简称Cams)是一个易于使用的、可靠的和经济的安全控制平台,它集中地控制、管
理和监控对受到保护的网络应用和数据的访问。管理员决定谁获得对系统资源的访问,Cams执行这个策略,并在
日志中记录结果,被Cams保护的资源可以驻留在内联网、外联网或互联网上。与在每一个应用本身中构建客户的
访问控制系统相比,Cams通过集中的应用安全管理和访问,使得站点更安全、更好管理。集中安全控制方式降低
了开发和管理的成本,缩短了产品进入市场的周期,提高了安全性和用户满意度。

作为Cams管理员,你需要一些关于Cams是如何组织和如何工作的基本知识,这样你就能配置Cams的访问控制、
认证和审计。本章对Cams作总体介绍,如何管理Cams服务器、安全访问和代理,请参考其它章节。
使用Cams进行集中访问管理

Cams是一个集中访问管理方案,在Cams中,分布的代理将安全判断委托给集中的授权机制 Cams服务器。Cams
设计来保护任何虚拟类型资源,包括:Web页面、文件、数据源和EJB等等。当代理发出访问控制请求后,Cams服务
器中的访问控制服务判断是否授权或拒绝对请求资源的访问,然后请求代理执行该决定。

图1展示了一个可能的Cams部署。在该部署中,用户1试图访问位于2个不同Web服务器上的资源,每个Web服务
器都有一个Cams Web代理,代理把访问控制和认证请求委托给中心Cams服务器。用户2试图通过Java客户应用或
Applet访问一个应用服务器,该服务器中有Servlet、EJB和数据源,应用服务器有一个内置的Cams应用服务器代
理,它也把访问控制和认证请求委托给中心Cams服务器。[/pre]

[pre]图1 - 使用Cams进行集中访问管理

如上所示,Cams在中心Cams服务器执行访问控制策略和登录配置。Cams服务器还集中进行用户活动日志记录
和安全管理。虽然图1所示的使用图形用户界面发出请求的是实实在在的用户,但要记住的是,用户也可能是一台
计算机,例如,用户可能是商业伙伴的订单系统,它在你的站点自动地下订单。
Cams服务器

Cams的核心是Cams服务器,它有一些互相操作的高层的安全访问,包括:

1. 访问控制访问 - 授权或拒绝对资源的访问
2. 认证访问 - 验证用户标识,并为用户建立一个会话,直到用户登出或闲置超时
3. 会话访问访问 - 向代理提供用户的认证信息
4. 会话控制服务 - 控制对会话的修改和关闭

Cams服务器既是策略服务器,又是认证服务器,它处理访问控制和认证请求。Cams服务器所提供的服务可以在
3个逻辑层次上组织,如图2所示:[/pre]

[pre]图2 - Cams服务的逻辑分层

网络适配器层能让Cams服务器在不同的TCP/IP端口上提供服务,并允许客户端使用不同的协议。服务提供层
提供安全服务,如认证和访问控制;这个抽象的层为Cams的扩展提供了灵活性,Cams几乎可以保护任何网络资源,
但使用的却是同一个服务提供层服务。

Cams代理通常在TCP/IP端口上访问安全服务,而象让Cams服务器终止等管理服务和访问控制在另外的端口上
可用,还可以通过防火墙,限制对某个Cams服务器的访问。当然,你也可以用Cams来实现Cams代理的认证和访问
控制。

Cams引擎层有安全域服务。安全域服务提供了一个根据管理的需要划分资源和用户的方式。什么是安全域?阅
读下节。

======
安全域
======

在Cams安全模型中,资源和用户账号都是被某个安全域所拥有,这使得访问管理可以根据组织和物理界限分区。
不同的安全域被不同的个人、部门和公司配置和管理。

每个安全域有它自己的服务,包括:

1. 访问控制服务 - 根据一个访问控制策略授权或拒绝对受保护资源的访问
2. 认证服务 - 验证用户标识,创建用户会话,直到用户登出或闲置超时
3. 会话访问服务 - 向代理提供用户认证的信息
4. 会话控制服务 - 控制会话的修改和关闭
5. 会话管理服务 - 管理经过认证的用户会话,如果闲置超时则使其过期
6. 服务管理服务 - 通过 编程API,使客户安全域的特定服务可以使用或重用

前4个安全域服务就是服务提供层中服务的临摹,后2个服务(会话管理和服务管理)是安全域中特有的。作为
管理员,要特别在意访问控制服务和认证服务,因为它们有很多配置工作。下面介绍各个安全域的访问控制服务和
认证服务是如何组织的,以便更好理解如何配置它们。
访问控制服务

访问控制服务位于安全域中,它有其处理管道(pipeline),称为访问控制管道。这个管道包含有可插入的访
问控制阀序列。默认地,第一个访问控制阀是记录请求的日志器,最后一个控制阀(也称为基阀)使用特定于安全
域的访问控制策略来授权或拒绝访问。安全域中的访问控制服务的组件图如图3所示:[/pre]


[pre]图3 - 安全域访问控制服务结构

============
访问控制策略
============

每个安全域使用一个访问控制策略来保护它所拥有的资源,访问控制策略中包含有权限集和一个访问控制规则
库。

====
权限
====

权限关联了一个资源集(用资源模式定义),资源集有2个可能的动作:用于授权或拒绝对资源访问的访问控
制规则或访问控制所要委托的安全域。一个特殊的系统安全域收到所有的访问控制请求,并把其中的大多数委托给
一个或多个其它的安全域,这些安全域是你要配置的。系统安全域还认证Cams