




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、统一身份认证系统的研究与实现1、引言随着因特网的飞速发展,基于b/ s(浏览器/服务器)结构的企业应用软件也得到 了快速发展,各种应用系统已经应用到很多企业的生产管理活动中去,为企业提高t 作效率和管理水平做出了巨人的贡献。但是,由丁企业受业务、自身条件和当时软件技术的影响,这些不同的系统往往是在不 同的时期建设起來的,运行在不同的平台上。各系统也许是由不同厂商开发的,使用了 各种不同的技术和标准。每个应用系统都有口己独立的一套身份验证机制,采取分散登录、分散管理。又由于 针对企业应用各系统的联系i-分紧密,各用户需要使用人多数的系统。如果不使用单 点登录(single sign on,简称
2、sso),势必造成企业的工作人员在实际工作屮要频繁地在各个系统登录和注销,严重影响 了生产效率;同时,很多系统都要维持一个用户身份信息是很麻烦的。因此,信息系统 急需建立一个统一的身份认证系统,以保证用户操作的方便和应用系统的安全。所谓统一身份认证,就是用户基于最初访问的一次身份认证,就能对其被授权的资源 进行无缝访问。单点登录是日前比较流行的企业业务整合的解决方案之一。sso的 定义是:在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系 统。木系统是对一个金业进行统一身份认证改造,该企业的应用系统均采用b2s(浏览器2 服务器)结构构建。系统进行统一身份认证改造后,需要能够实
3、现较为灵活的、基于 saml协议和rbac拚议原理的单点登录模型,并ii需要有灵活的访问控制,保证和 原有系统的紧密结合,实现用户的统一身份认证。2、saml、rbac简介和工作原理2. 1 saml 简介saml ( security assertion markup language ,简称 sal)标准定义了一个在线商 业伙伴之间交换安全佶息的框架。更准确地说,saml定义了一个基于xml标准的 框架,用于实体z间交换安全信息。saml 1. 1 是曲 oa2sis ( the organization for the advancement of st ructuredlnformat
4、ion standards ,简称oasis)标准组织的安全服务技术委员会 sstc(security services technical committee ,简称 sstc)制定的。saml可以实现不同安全服务系统z间的互操作,sstc通过了很多用例(需求)來 推动saml的需求。saml 1. x屮解决的最重要问题就是单点登录问题,用户使用 用户名和口令登录源站点,然后希望无需再次验证即可访问目标站点。用户通过在认证站点进行认证登录,认证站点和r的站点通过交换用户认证信息,从 而到达认证的冃的。在这里,认证站点即为一个认证区域的中心认证服务站,一个认证 区域一般只有一个这样的认证站点,
5、全面担任用户身份认证的责任。而目的站点就是需要认证站点提供服务的应用系统,一个区域一般都有多个这样的 口的站点。由于把认证的工作都交给了认证中心,所以目的站点一般不会考虑身份验 证的问题。2. 2 rbac工作原理由于该项目是基于saml 1. 1标准构造的,所以下而介绍的主要是saml 1. 1协 议的内容。saml规范体系主要由三个部分构成:断言(assertion)、请求/响应协 议(request and response protocol)、绑定和配置(bindings/profiles),各个部分紧密地 联合在一起,构成了整个saml协议的实现。2.3 rbac的简介基于角色的访问
6、控制(rbac)的概念在20年前第一次提出,它是从传统的随意访 问控制(discretionary accesscont rol,简称 dac)和强制访问控制(mandatory accesscont rol,简称mac)发展起来的。它可以实现企业的权限机制到企业组织结构的口然映射,提高了访问控制的水平,大 人提高了安全管理员的效率。rbac模型由四个部件模型组成,分别是棊本模型 rbaco (core rbac)、角色分级模型 rbac1 ( hierarchalrbac)、角色限制模型 rbac2 (const raint rbac)和统一模型 rbac3 (combines rbac)。
7、rbaco定义了能构成一个rbac控制系统的最小的元素集合。在rbac z中,包 含用户(users )、角色(roles)、对象(object s)、操作(operations)、许可权 (per2missions)五个棊本数据元素。权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角 色所包含的权限。会话sessions是用户与激活的角色集合z间的映射。rbaco与 传统访问控制的差别在于增加一层,间接性地带来了灵活性,rbac1、rbac2、 rbac3都是先后在rbaco基础上的扩展。3 统一身份认证设计和实现3. 1 总体构架该系统采用b2s结构,整个统一身份
8、认证体系由一个认证服务器和应用系统服务 器(该系统主耍用于实验目的,因此这里的应用服务器只有一个,在实际应用中应用系 统应该有多个)构成。认证服务器负责对用户进行身份验证,并把认证结果返回给丿应 用服务器;应用服务器根据认证的结果,结合其自身的rbac访问控制系统,对用户访问系统进 行授权。认证服务端由saml响应器、身份验证服务和认证服务数据库构成。saml 响应器用于与应用服务端进行saml协议信息,用于完成认证服务器和应用系统的 身份信息处理和通信;身份验证服务主要用于对登录用户进行验证;认证服务数据库用于保存与用户的身 份相关的信息。应用服务端由saml响应器、rbac访问控制和应用系
9、统数据库 组成。saml响应器用于与认证服务端进行saml协议信息,用于完成认证服务器 和应用系统的身份信息处理和通信;rbac访问控制组件用于根据用户在该系统中的角色对用户访问系统的权限进行 有效的控制;应用系统端数据庄主要包扌舌应用系统的账户和对应权限信息,当然还应 包括用于保存应用系统业务数据的信息。由丁本文的关注点主耍在认证方面,故在本 系统屮不会表达。3. 2数据库设计按照模型设计的要求,统一认证系统包括两部分数据库:一部分属于认证服务器的 identityinformation数据库,另一部分是应用系统的serviceinformation数据库(因为 只为了表示统一身份认证,在该
10、系统设计屮只有访问控制部分的设计)。首先介绍identitylnformation数据库的设计。设计该数据库的目的主要是为了表达 同一用户管理模型中的映射关系,把各应用系统的账户和统一的用户id联系起来。 该数据库由application> user、user_account _application三个表构成,各表之间通 过外键相关联。根据现在分别对各表的设计进行介绍:表user的主要作用是为了表达统一身份认证 的统一用户的目的。这里,把有应用系统的各个账号由user表屮的user_id表示。 这样,用户的身份就被统一起来了,用户的验证主要根据这张表的usejid和 password判
11、断,它由用户唯一标志(user_id)、密码(password)和用户名(user_name) 构成。表user_account_application的主要作用是建立用户到各应用系统中的账号,和账号 对应访问的系统建立对应关系。根据登录模型设计的要求,访问控制由系统自行决 定。所以,建立这样的关联后,用户访问各系统就可以根据系统白身的访问控制表进行 用户系统授权。它由用户唯一标志(user_id)、账号标志(account_id)和应用系统唯一标志 (application_id)构成,这三个字段联合构成一个主键,用丁表示三者的唯一关系。表 application的主要作用是描述应用系统的信
12、息,包括应用系统唯一标志(application. id)、应用系统名称(application- name)和应用系统的访问地址(application_url)。由于应用系统都采用b2s结构,所以町以用url地址表示应用系统资源的位置。 下面介绍应用系统的数据库serviceinformationo设计该数据库的冃的是表达设计的 访问控制模型,设计的表只包含完成访问控制的部分。该数据库包括四个基本信息表,即user (用户表)、role (角色表)、privilege (权限 表)、object (操作对象),它们分别定义了用户、角色、权限、操作对象各个实体的 基本信息;另外有五个关系表,
13、即user_torole (用户2角色关系表)、user_to_subprivilege佣 户2附加权限关系表)、usci*_to_subprivilege (用户2限制权限关系表)、privilicge_ to .object (权限2操作对彖关系表)。数据库屮各表的关系设计。它对应于认证端的账户概念;role表用于定义角色,一个角色代表享有系统相似权 限的一部分人;privilege表用于定义系统的权限;object表用于表达系统的功能实体, 它和权限通过privilege. to .object (权限2操作对象关系表)关联起来,用于表达访 问控制的结杲。user - to _role
14、(用户2角色关系表)主要用于描述用户到角色的对应,而role_to_ privilege (角色2权限关系表)用于表达角色拥冇的权限。这样,通过用户就能够找到用户到权限的一个对应。同样,user_ to _addprivilege (用 户2附加权限关系表)、user_ to_subprivilege (用户-限制权限关系表)也可以分别 得到一个用户到权限的对应。通过上述对应关系,可以根据模世设计的要求找到一个用户到权限的映射,从而达到 访问控制的目的。笔者通过sql语言中各表的连接查询可以表达出模型设计的耍 求。3. 3 saml组件介绍该系统中采用了 componentspace公司的sa
15、ml组件,该组件很好地实现了 sam1l 1. 1协议屮所要求的功能。该组件按saml的协议层次把组件分成了 assertions、protocol、binding profile 四部分(名称空间)。3. 4 系统实现3. 4. 1 系统详细模块结构该系统基t b2s结构创建,将采用微软的asp. net技术作为实现基础,数据库则 采用了微软的sql2000数据库,消息的传递主要采用网页传值的方式实现。根据模型设计的要求,系统由认证服务器端(identity provider)网站和应用服务器端 (service provider)网站构成。每个页面(aspx文件)实现模块中的部分功能,通过
16、各 个页面z间的身份信息的传递,最终达到实现模型设计的需求。为满足统一身份认证的要求,现针对各个页血的功能作一个简要的功能介绍:(1)认证端(identity provider)网页。认证端网站屮包含页面和其对应的功能描 述:checkimage, aspx (验证码页面)主要用于随机生成图片码,用户每次登录必须输 入不同的图片验证码,防止攻击者采用自动攻击工具不断地尝试用户名和密码,增加 了系统的安全性。增加攻击者尝试猜测密码的难度,也是目前网站比较常用的安全方式之一。login, aspx (登录页面)主要是通过访问认证屮心数据库屮的用户名和密码信息來判断用 户的身份是否合法。如果认证成功
17、,则转到applicationinfo, aspx (应用系统信息页 面)。applicationinfo, aspx (应用系统信息页面)主要根据己经通过验证的登录用户,依据 数据库屮该用户对应的可访问的应用系统信息,在页面上显示,供用户选择登录。用户 选择登录后,将生成用户认证断言和票据并保存在应用屮,然后把票据传递给应用服 务器的artifact receiver, aspx(票据接受处理页面),rfl应用系统端作进一步处理。saml2responde匚aspx (断言杳询)的功能主要是根据应用系统端传递过来的诘求信 息找到对应该请求的断言,并根据该断言把断言结果返冋给应用系统端,应用系
18、统端 作进一步处理;identityinformation (认证端数据库)的主要功能是保存用户的身份验 证数据和应用系统信息的相关信息。 应用系统端(service provider)。应用系统端网站中包含的页面和其对应的功 hl:arlifact receiver, aspx (票据接收页|侨)根据认证服务器端的票据构造saml请求 对象,并把查询断言传递到认证服务器;认证服务器根据其保存的断言信息返回查询 结果(saml返冋对象)给该页面,应用系统端根据该结果决定是否给用户访ho defalut. as2px (系统默认页面)是该页 面为应用系统的总控制台,在这里可以访问应用系统的具体功
19、能。如果用户认证成功, 则表示用户有权进入该应用系统,该页面将根据对用户的访问控制权利,对用户访问 系统的功能作限定。identityln2formation (应用系统端数据库)主耍功能是保存原有系统的用户身份(账 户)信息和对应访问控制信息。3. 4. 2 统一验证流程该系统通过saml协议的browser/artifact方式进行实现。登录流程大体为:用户 在验证服务器端验证通过后,牛成断言和票据(artifact),把断言和artifact绑定在一 起保存到认证服务器端的全局变量(在该系统的实现屮为asp. net的application 全局变量)。认证服务器把票据传递给应用服务器,
20、应用服务器根据票据(artifact)杳询认证服务 器所对应的断言,并把查询结果(认证结果)返回给认证服务器。认证服务器判断结果 的有效性和真伪性:如果真实有效,则对用户访问系统授权。根据登录流程的时间序列图,对各部分的功能和实现给出一个详细的描述:(1)用户输入用户名、密码、验证码到认证服务器进行验证,木系统采用传统的用户 名和密码方式进行验证。首先,系统验证图片码,如果成功,对输入的密码加密(山于数 据瘁保存的密码是一个md5的hash值,所以需要对用户输入密码进行md5加密); 然后,再和数据库中的记录进行比对:如果用户验证成功,系统把通过验证的用户id 写入session (会话),页
21、面将跳转到applicationinfo页面作进一步处理。 在applicationinfo页面,系统将根据系统屮用户id的session值对数据库进行 查询,找出关联到该用户id的用户相关系统信息,并展示到页面上供用户选择。(3)当用户选择了需要进入的应用系统并确认进入后,系统将根据用户id对应于该 应用系统的用户帐户产牛断言和票据,并把它保存在全局的application变量中。生成断言后,系统将把票据(aritfact )以url传值的方式传到artifactreceiver 页面。(58)由丁第(5)步到第(8)步联系比较紧密,是saml的主耍身份信息交换机 制,所以在这里把它们放在一
22、起进行说明。首先artifactreceiver页面在装载时,根据 传回来的票据值创建saml的request対象,并通过它向应用服务器页面(在这里是samlresponder页面)查询断言;amlresoponder页fti负责处理saml请求,并根据票据(artifact)查找application 中相应的断言,并构造saml的response对象,通过认证服务器的私钥进行加密, 并返回;artifactreceiver页面处理saml的response对象,并根据断言的结果,其中断言中 包含了统一认证用户的id对应到应用系统的账号,给用户访问系统授权(这里采用 t asp. net的窗li认证方式,该方式可以保留用户的登录信息到cookie屮); 根据返冋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新型圆管涵施工技术指导与竣工验收备案咨询合同
- 2025年度个人信用额度担保贷款合同范本
- 2025年新一代铲车租赁及大型市政施工一体化服务合同
- 2025年度高端商务区办公场地租赁及装修服务合同
- 2025年度跨境电商平台信息技术改造及支持服务协议
- 2025年度环保材料展示及市场拓展专项合同
- 2025年金融企业财务审计与风险防范服务协议
- 2025年科技园区核心区场地租赁与科技成果转化合作框架协议
- 2025年度环保工程车载泵租赁与绿色环保质量保证合同
- 2025年度清洁能源项目资金保障协议范本
- 《半导体行业发展历程》课件
- 农业种植技术服务合同协议
- 2024年淮南市第一人民医院西区高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 煤矿安全监测监控系统设计课程设计
- UL3703标准中文版-2020太阳能跟进器UL中文版标准
- 2024年职业技能(农产品质量安全检测员)资格知识考试题库与答案
- 采购行业五年规划
- 拉德芳斯城市规划
- 医患沟通和技巧课件
- 基孔肯雅热的临床特征
- 《实习安全教育》课件
评论
0/150
提交评论