当前位置:编程学习 > JAVA >>

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

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系统管理员和代理,保护系统级资源。
访问控制规则

    Cams的访问控制规则控制对资源的访问,通过以下条件:

·    经过认证用户角色
·    远程主机/IP地址
·    安全的连接(如SSL/TLS)
·    日期/时间
·    认证方法

    这些规则可以根据需要客户化,并用“AND”、“OR”和“NOT”操作符结合起来构成可重用的、结构化的表达
式。另外,使用编程API可以创建新的访问控制规则类型,并插入到任何Cams访问控制策略中。例如,你也许想创
建一个访问控制规则,它基于数据库中的值,如某个账户存款数量,来授权访问资源。
访问控制请求/响应

    Cams代理发送一个访问控制请求给Cams服务器,检查用户对资源的访问。访问控制请求包含有请求资源的信息
(资源类型、资源唯一标识和一个或多个请求动作)。例如,一个用户通过Web浏览器访问http://www.cafesoft.com/index.html,
那么就有以下资源请求参数:

1.    资源类型:http
2.    资源标识:http://www.cafesoft.com/index.html
3.    动作:GET

    访问控制请求还包含其它参数,这些参数对决定是否授权访问非常重要:

·    访问资源的客户的IP地址/主机名
·    Cams会话标识(已经认证的用户)
·   &nb
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,