论文部分内容阅读
结构化信息标准推进组织(0rganization for the Advancement of Structured Information Standards,0ASIS)制定的安全性断言标记语言(Security Assertion Markup Language,SAML)规范正在逐渐成为基于Web Service的互联网分布式应用系统安全信息交换的共用标准。本文从基于S0A设计的ITER科研协作平台出发,根据SAML有关单点登录使用场景的规范,设计开发了基于SAML的单点登录系统。
首先,本文围绕着S0A的基本理念,分析了S0A架构下的应用系统的关键要素:应用程序前端、服务、服务库和服务总线,并结合这些要素及其特征分析和介绍了ITER科研协作平台的架构设计思想。
随后,本文分析了传统单点登录系统可生存性差、协议互通性差等局限性,并在ITER科研协作平台已有架构设计基础上,设计了单点登录系统如何融合到已有S0A架构中的方式,形成了松耦合,粗粒度的单点登录服务组件,提升了系统的可生存性;并且选择了OASIS提出的SAML关于单点登录系统开发所遵守的规范,提升系统的互通性和可扩展性。
作者详细分析了SAML的基本概念,从XML文档细节出发考察了SAML陈述、断言、协议以及与SOAP绑定的消息结构,并且将这些重要组件结合起来描述SAML的单点登录场景,常见消息流模式和绑定的结合。着重介绍了SP拉与IdP推方式并比较了两者的优劣。
在已有的分析基础上,作者在.NET Framework v2.0框架下开发了基于SAML的单点登录系统。首先按照SAML规范,建立起了断言和协议的消息类,并通过自定义属性与标准XML文档实现了一一映射。设计实现了高效的基于内存的断言和Artifact管理机制,独立定义了SAML通信伙伴的描述数据结构和管理方式,定义统一用户身份的数据格式,并设计了基于永久假名的身份联盟机制,这一机制的设计为身份联盟的管理带来很大的便利。在已有的基础上,设计和开发单点登录的核心角色_身份断言方IdP,实现了用户登录、假名管理、断言签发、应用程序跳转等功能模块。并且还设计实现了服务提供方SP的原型,SP的断言消费服务提出身份认证请求、消费处理身份断言、为用户申请访问受保护的SP资源提供授权。文章的最后对该系统的运行实例进行了测试。