好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

统一身份认证平台集成接口文档.doc

46页
  • 卖家[上传人]:壹****1
  • 文档编号:499097860
  • 上传时间:2022-08-27
  • 文档格式:DOC
  • 文档大小:454.50KB
  • / 46 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 三峡大学统一身份认证平台接口文档目录1. 统一身份认证简介 31.1 背景知识 31.1.1 什么是单点登录(Single Sign On ): 31.1.2中心认证服务的设计愿景: 31.2 CAS的实现 4系统中的用至U的凭证( ticket) : 52. JAVA语言 62.1 CAS简单登陆的实现 62.2 CAS登出 123. PHP语言 133.1 CAS单点登录测试环境搭建步骤 133.1.1 获取必要的驱动程序: 133.1.2 搭建php运行环境 133.1.3 配置PHP cas客户端测试程序 133.2 PHP-CAS客户端 143.2.1 cas-client 的初始化 143.2.2 设置不是 SSL的CAS认证 163.2.3 进行CAS认证 173.2.4 登出 204. ASP.NET语言 224.1 搭建ASPNET环境 224.2 CAS简单登陆实现 224.3 CAS登出实现 235. ASP语言 245.1 CAS简单登录实现 245.2 CAS登出实现 256. 附录 266.1 附录 1 266.2 附录 2 286.3 附录 3 306.4 附录 4 31附录 5 321.统一身份认证简介1.1背景知识1.1.1 什么是单点登录(Si ngle Sign On ):所谓单点登录是指基于用户 /会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。

      目前单点登录主要基于 Web的多种应用程序,即通过浏览器实现对多个 B/S架构应用的统一账户认证1.1.2 中心认证服务的设计愿景:简单的说,中心认证服务( Central Authentication Service 缩写:CAS)的目的就是使 分布在一个企业内部各个不同异构系统的认证工作集中在一起, 通过一个公用的认证系统统一管理和验证用户的身份,一般我们称之为统一身份认证平台在CAS上认证的用户将获得 CAS颁发的一个证书,使用这个证书,用户可以在承认 CAS证书的各个系统上自由穿梭访问,不需要再次的登录认证打个比方:对于加入欧盟的国家而言,在他们国家中的公民可以凭借着自己的身份证, 在整个欧洲旅行,不用签证对于学校内部系统而言,CAS就好比这个颁发欧盟认证的系统,其它系统都是加入欧盟 的国家,它们要共同遵守和承认 CAS的认证规则因此CAS的设计愿望就是:实现一个易用的、能跨不同 Web应用的单点登录认证中心;实现统一的用户身份和密钥管理,减少多套密码系统造成的管理成本和安全漏洞;降低认证模块在IT系统设计中的耦合度,提供更好的 SOA设计和更弹性的安全策略1.2 CAS的实现从结构上看, CAS包含两个部分: CAS Server和CAS Client 。

      CASServer 需要独立部署,主要负责对用户的认证工作; CASClie nt负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server图1是CAS最基本的协议过程:CAS Clie nt与受保护的客户端应用部署在一起,以Filter 方式保护受保护的资源对于访问受保护资源的每个 Web请求,CASClient会分析该请求的 Http 请求中是否包含Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CASServer登录地址,并传递Service (也就是要访问的目的资源地址) ,以便登录成功过后转回该地址用户在第 3步中输入认证信息,如果登录成功, CASServer随机产生一个相 当长度、唯一、不可伪造的 Service Ticket ,并缓存以待将来验证,之后系统自动重定向到Service 所在地址,并为客户端浏览器设置一个 Ticket Gran ted Cookie ( TGC , CASClient 在拿到Service 和新产生的 Ticket 过后,在第5,6步中与CAS Server进行身份合适,以确保Service Ticket 的合法性。

      在该协议中,所有与CAS的交互均采用SSL协议,确保,ST和TGC的安全性协议 工作过程中会有2次重定向的过程,但是CAS Client 与CASServer之间进行Ticket 验 证的过程对于用户是透明的另外,CAS协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景, 具体介绍可以参考 CAS官方网站上的相关文档系统中的用到的凭证(ticket):Ticket-granting cookie(TGC) 凭证存放 cookie它是存放用户身份认证凭证的 cookie,在浏览器和 CAS间通讯时使用,并且只能基于安全通道HTTPS它是CAS用来明确用户身份的凭证,是实现web系统SSO的可选方案之一Service ticket(ST) 服务许可证Service ticket 凭证由CAS服务器发出,通过客户端浏览器,到达业务服务器(通过 URL重定向和ticket 参数来实现)每个 ST只能使用一次,针对特定的服务生成唯一识别 码Proxy-gra nting ticket(PGT) 代理授权许可证该许可证由CAS服务器颁发给拥有 ST凭证的服务(如果一个服务自身没有获得 ST凭证, 是不可能获得 PGT的)。

      该许可证绑定一个用户的一个特定服务, 使其拥有向CAS服务器申请,以获得“代理凭证 Proxy-tickets ”的能力Proxy-gra nting ticket IOU(PGTIOU) 代理授权许可证索引这个许可证索引将通过凭证校验时的应答信息由 CAS服务器端返回给 CAS客户端与此同时,与该索引对应的 PGT将通过回调链接传给 web应用Web应用必须维护着 PGT索引和 PGT之间映射关系的内存表Proxy ticket(PT)代理许可证是应用程序代理用户身份, 对目标程序进行访问的凭证 代理许可证保存有代理及代理们进行逐级访问过程的信息 一个代理访问的有可能是另一个更高级的代理, 因此PT可以用来获取下一级代理的 PGT这些逐级生成的 PGT将保存有从用户到最终目标之间的代理队列的完整信息后面的章节将介绍常用的几种语言编写的程序,如何如何集成到统一身份认证中心平 台如果将来学校还有其他语言的系统需要集成到统一身份认证中心平台, 请联系公司索取相应的实现方法2. JAVA语言2.1 CAS简单登陆的实现假设CAS Server单独部署在一台机器 A,而客户端应用部署在机器 B上,由于客户端应用与CAS Server的通信采用SSL,因此,需要在A与B的JRE之间建立信任关系。

      首先与A机器一样,要生成 B机器上的证书,配置应用服务器的 SSL协议其次,下载 的InstallCert.java ,运行"java InstallCert compA: 7002 ”命令,并且在接下来出现的询问中输入1这样,就将A添加到了 B的truststore 中如果多个客户端应用分别部 署在不同机器上,那么每个机器都需要与 CAS Server所在机器建立信任关系配置 CAS Filter准备好应用casTest1 和casTest2 过后,分别部署在 B和C机器上,由于casTest1 和casTest2,B和C完全等同,我们以 casTest1 在B机器上的配置做介绍,假设 A和 B的域名分别为 domainA 和domainB将 cas-client-java-2.1.1.jar 并拷贝到 casTest1/WEB-INF/lib 目录下,修改web.xml文件,添加 CAS Filter ,如清单10 所示:添加 CAS FilterCAS Filteredu.yale.its.tp.cas.clie nt.filter.CASFilteredu.yale.its.tp.cas.clie nt.filter .login Urlhttps://doma in A:8443/cas/logi nedu.yale.its.tp.cas.clie nt.filter.validateUrlhttps://doma in A:8443/cas/serviceValidatevparam-n ame>edu.yale.its.tp.cas.clie nt.filter.serverNamedoma in B:8080CAS Filter/protected-patter n/*对于所有访问满足 casTestl/protected-pattern/ 路径的资源时,都要求到 CASServer登录,如果需要整个 casTestl 均受保护,可以将 url-pattern 指定为"/* ”。

      从以上配置可以看到,我们可以为CASFilter 指定一些参数,并且有些是必须的,表格1和表格2中分别是必需和可选的参数:表格1. CASFilter 必需的参数参数名edu.yale.its.tp.cas.clie nt.filter.logi nUrledu.yale.its.tp.cas.clie nt.filter.validateUrledu.yale.its.tp.cas.clie nt.filter.serverName作用指定CAS提供登录页面的 URL指定 CAS 提供 service ticket或proxy ticket 验证服务的URL指定客户端的域名和端口, 是指客户端应用所在机器而不是 CASServer所在机器,该参数或serviceUrl 至少有一个必须指定edu.yale.its.tp.cas.clie nt.filter.serviceUrl表格2. CASFilter 可选参数该参数指定过后将覆盖serverName参数,成为登录成功过后重定向的目的地址参数名作用edu.yale.its.tp.cas.clie nt.filter.proxyCallbackUrl用于当前应用需要作为其他服务的代理(proxy)时获取ProxyGran ti n。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.