IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Grid computing  >

构建统一的网格,第 3 部分: 安全、身份验证和授权组件

端到端的身份验证和授权

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Abel W. Lin (awlin@ncmir.ucsd.edu), 软件架构师, National Center for Microscopy and Imaging Research
Kurt Mueller (kurt@sdsc.edu), 软件工程师, San Diego Supercomputer Center (SDSC)

2006 年 4 月 06 日

对一个端到端过程 “启用网格” 意味着什么呢?在这个 “构建统一的网格” 系列文章中,位于 National Center for Microscopy and Imaging Research 的 Telescience Project 项目中的网格架构师向我们展示了他们的基础设施如何引导开发人员构建更统一的网格。第 1 部分 介绍了基于网格的系统体系结构。第 2 部分 介绍了统一网格如何更快地计算更多数据,并以一种随需应变的方式统一利用资源,从而更快地搜集更好的 数据。这种统一的核心是可以安全地连接到各种分布式资源上的能力,这也是我们现在要在第 3 部分中讨论的内容。

网格中的安全、身份验证和授权

不管是否基于网格,安全性对于任何组织来说都是至关重要的。然而,“安全性” 通常在所有的阶段都需要使用,它包括几个单独的组件:物理安全性、身份验证和授权。它们都具有定义好的重要需求。安全性(Security) 对于基于网格的通信的私密性、完整性和总体保护来说都是非常必要的(例如,防止网络遭到嗅探攻击和中间人攻击)。身份验证(Authentication) 对于验证用户的身份以及实现单点登录和委托功能来说都是非常必要的。授权(Authorization) 用来确定通过身份验证的用户可以执行的操作。

第 1 部分 中,我们简要介绍了 Telescience ATOMIC Authentication and Authorization(TeleAuth)的内容。现在我们将介绍一下 Grid Accounts Management Architecture(GAMA),它提供了 ATOMIC 的 TeleAuth 组件的核心功能。





回页首


网格安全性 —— 不仅仅是分发证书

网格安全性事实上的标准是 Grid Security Infrastructure(GSI)。 GSI 是一个基于公钥的 X.509 确认系统,它依赖于第三方对用户和主机的证书进行签名。典型的使用模型需要为每个用户都分配一个用户证书,这包括一个公钥和一个私钥。用户可以生成委托代理(delegated proxy) 证书,它只具有有限的生命周期,可以从一个组件传递到另外一个组件上,从而构成身份验证、访问控制和日志记录的基础。用户通常可以手工管理证书(和代理),或使用一些基于命令行的工具来管理他们的证书。

尽管 GSI 已经得到了广泛的接受,并且已经使用了很多年,但是管理员都知道基于 GSI 的安全系统很难进行部署,用户也很难使用。具有讽刺意味的是,尽管安全性是所有网格系统的基本且关键的组件,但是直到最近,依然没有完整的端到端安全系统可以解决整个问题。GAMA 的创建就是为了解决所有类型的用户(管理员、应用程序开发人员和终端用户)都缺少的这个功能。

使用 GAMA,终端用户不需要知道有关网格安全性、证书、代理或其他技术的任何情况。他们可以简单地使用典型的 Web 表单界面来请求一个帐号,在这个帐号被创建之后,他们就可以使用熟悉的用户名/密码组合登录门户了。所有的网格操作都是在后台发生的 —— 从网格证书的创建到门户获取这些证书来使用全都是。

对于应用程序开发人员来说,GAMA 服务器组件被包装到网格服务中,这些服务可以由客户机和门户进行访问。例如,简单的 GAMA 登录功能可以简单地增加到现有的独立应用程序中,这可以提供对启用网格的资源的访问,因此需要使用用户的网格证书。这已经使用 Python 和 XUL(JavaScript)胖客户机应用程序展示过了。

对于网格管理员来说,GAMA 服务器是使用 Rocks 集群打包系统进行安装的。我们使用一张可引导的 CD 来安装操作系统(Linux®)和所有必须的网格中间件安全软件包。即使对于有经验的网格管理员来说,手工安装并配置 OS 以及所有的网格安全性包也需要花费几个小时(甚至几天)的时间,但是使用我们的 Rocks 安装程序,GAMA 服务器在 1 个小时之内就可以准备好。





回页首


Grid Accounts Management Architecture(GAMA)

与 Geosciences Network(GEON)一起,Telescience Project 可以用作创建 GAMA 的驱动应用程序环境。GAMA 将很多网格安全组件统一到一个工具中,这使网格安全性会像商业 Web 站点一样易于使用,同时可以维护 GSI 的安全性和委托功能。与 Application to Middleware Interaction Component(ATOMIC)中的其他工具一样,GAMA 为终端用户、门户和应用程序开发人员提供了一个适当简化的界面。

GAMA 是一个具有 GridSphere 门户的客户机/服务器系统,它为 GAMA 客户机提供了访问运行 GAMA 服务器组件的专用服务器机器的功能。我们稍后将分别介绍这个服务器和客户机,并了解一下它们如何统一利用原来零散的网格工具来实现用户交互并执行用户管理任务。本文介绍了 Telescience 中使用的 GAMA V1.x 体系结构,以及在 GAMA V2.0 方式下进行的一些改变,从而提高了稳定性和可伸缩性。

图 1 给出了 GAMA 的体系结构;右边是 GAMA 服务器软件结构。目前,GAMA 统一了许多最常用的安全性网格组件(每个组件都是单独开发的):

  • CACL —— 在 San Diego Supercomputer Center(SDSC)开发的 CACL 是一个证书权威系统,用来为用户(和主机)生成 GSI 证书。
  • MyProxy —— 在 National Center for Supercomputing Applications(NCSA)开发的 MyProxy 是一个用来存储代理和从用户的 GSI 证书中生成有限生命周期的代理的代理仓库。
  • Community Authorization Service(CAS) —— 由 Globus Project 开发的 CAS 通过 GSI 机制为用户社区提供了基于角色的身份验证机制。

虽然这些组件通常可以在命令行中单独使用或连续使用,但是 GAMA 将它们统一成了 Axis Web 服务。这意味着使用任何语言编写的可以支持 Web 服务的客户机都可以通过一个经过仔细定义的简单 API 来访问这些组件。对于今后的安全性来说,Axis 会在 Apache Tomcat servlet 容器中运行,依赖于 Java™ 的 keystore 机制来与客户机进行协商通信。


图 1. GAMA 体系结构 —— 左边是客户机,右边是 GAMA 服务器
GAMA 体系结构

在客户机(门户)一端,GAMA 包括一组 GridSphere 门户以及由门户开发人员集成到门户(例如 Telescience Portal)中的辅助服务:

  1. 帐号请求门户为新用户填写并提交自己的个人信息和帐号设置提供了一个表单。
  2. 帐号管理门户用来让门户管理员查看并管理所提交的用户帐号请求。
  3. 管理员根据本地站点策略来选择是批准还是拒绝新的帐号请求,并可以配置一些规则,根据 e-mail 地址的域名确定自动批准还是自动拒绝。(例如,管理员可能会希望自动批准来自 NCMIR 的所有用户,因此他就可以添加一条规则,自动批准 e-mail 地址中包含 “ncmir.ucsd.edu” 的用户的请求。
  4. 在管理员批准(或触发一条自动批准规则)之后,可以向用户发送一条 e-mail 消息,通知他已经得到了批准,并以 URL 的形式提供一个激活帐号的 Web 链接。
  5. 当用户点击这个链接并在门户上激活这个帐号时,就会执行一系列的步骤来创建新用户的帐号:
    • 门户通过 Web 服务调用在 GAMA 服务器上运行的 CACL 服务。
    • CACL 服务为这个新用户生成一个 GSI 证书和一个密钥。
    • 门户通过 GAMA 服务器上的 MyProxy 通知 GAMA 服务器(也是通过 Web 服务)启用这个新证书和密钥。
    • 然后门户为用户创建一个本地的 GridSphere 门户帐号,并将这个帐号配置为在登录时使用 GAMA 服务器进行身份验证。
  6. 现在,这个新用户就可以使用在帐号请求和激活过程中选择的用户名和密码登录到门户中了。
  7. 当用户提供用户名和密码并点击门户上的 Login 按钮时,GridSphere 框架就调用 GAMA 服务器上的 MyProxy 服务来对用户进行身份验证。
  8. 如果所提供的用户名和密码有效,MyProxy 服务就从用户证书中提取出一个有限生命周期的证书。
  9. 代理证书是在 GridSphere 门户环境中为用户激活的,用户也是登录到这个门户中。

现在,启用网格的门户或门户中的服务(例如作业控制门户或文件传输门户)就可以简单地访问用户的网格证书了,并可以将这些证书传递给网格资源和服务使用。

CAS 为 MyProxy 服务提供了类似的功能,其中以适当的用户名/密码组合形式向门户或其他客户机返回基于 GSI 的证书,不过这样实现的身份验证粒度比标准的 MyProxy 证书更加精细。CAS 证书包括了授权声明,其中描述了用户在社区中的角色,终端资源也可以使用它来进行相应的访问授权。目前,GAMA 服务器上运行了一个可以工作的 CAS 服务,我们正在积极开发门户端用来通过 CAS 管理用户角色的工具。





回页首


结束语

GAMA 是为社区用户提供的一个非常好的解决方案,它正在实现到网格计算的转换,需要一个相当容易安装和维护的系统,不会增加用户管理自己证书的负担。这把那些通常非常繁杂、容易引起混乱且容易出现错误的过程进行了简化和统一。

然而,GAMA V1.x 目前是与特定的基于网格的技术(CACL、MyProxy 和 CAS)绑定在一起的,它只提供了有限的机制来扩展或添加新的 GAMA 服务。我们正在从事 GAMA V2 方面的工作,它会围绕一个插件体系结构进行构建,从而允许进行定制和扩展,并将一些简单的功能链接成为更加复杂的工作流(可能并不是完全基于网格的)。例如,GAMA 的一个实现可能会希望使用现有的 LDAP 基础设施来进行身份验证。新的插件系统将允许简单地构造一个 LDAP GAMA 模块,并将其与其他 GAMA 模块(例如 MyProxy 或 CAS)合并在一起来执行一个多步骤的登录系列操作。另外,GAMA V2 可以更好地支持多门户,并可以让多个本地站点管理员从自己的站点执行 GAMA 管理员的工作 —— 所有这些都在同一个 GAMA 服务器上。



参考资料

学习

获得产品和技术


作者简介

Abel W. Lin 是 National Center for Microscopy and Imaging Research 的 Telescience Project 的架构师和技术负责人。他在科学领域应用网格和其他计算机科学技术方面已经有 5 年多的经验了。他设计并领导了 Telescience Project 的 Telescience Portal 和 ATOMIC 组件的第一代证据概念系统。他还是一位科学家,在生物和计算机科学领域发表了很多文章。他的兴趣包括分布式系统体系结构、软件项目管理和结构生物学。在工作之余,他喜欢阅读、打高尔夫球和冲浪。


Kurt Mueller 是位于圣地亚哥的 University of California 的 San Diego Supercomputer Center(SDSC)的研究人员。他是 GAMA 项目的首席开发者。Kurt 还参与了早期几个非常有影响力的网格门户项目,包括 GridPort toolkit 和 NPACI、PACI HotPages,他已经与位于 NCMIR 的 Telescience 团队合作了很多年。作为一名受过培训的认知科学家,Kurt 的研究兴趣包括人机交互、网格安全性和门户技术。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款