CAS
bccastle 7/7/2020 认证协议
# 什么是CAS
CAS是一个基于HTTP2,3的协议,它要求每个组件都可以通过特定的uri访问。
通过CAS协议将IDaaS作为身份服务提供商,使第三方应用可以读取IDaaS的用户账号数据。
我们支持CAS1.0、CAS2.0、CAS3.0三种协议。
# CAS 协议简介
在CAS 协议中,涉及到两个主体。
- CAS Server: CAS 服务,身份认证提供方,如竹云IDaaS认证服务。
- CAS Client: CAS 客户端,资源提供方,如第三方应用。
这两个主体通过用户浏览器进行信息交换。方式上,比如 CAS Client 可以返回带参数的重定向,将信息转发给 CAS Server。登录验证成功后 CAS Server 会返回CAS Client一个包含用户信息的 XML, CAS Client验证用户信息后会返回给用户访问资源。
# 理解CAS流程
- 1.用户试图登录 CAS Client 提供的应用。
- 2.CAS Client 会分析该请求的 Http 请求中是否包含认证票据 ST,如果没有,则说明当前用户尚未认证,于是重定向 CAS Server ,并传递 Service (也就是要访问的目的资源地址)。
- 3.用户输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 票据 ST,然后附带生成的ST重定向到 CAS client。
- 4.CAS Client 在拿到 Service 和新产生的 ST 过后,通过后台与 CAS Server 进行交互验证。
- 5.CAS Server 根据请求参数 Service 和 ST 进行身份核实,以确保 ST 的合法性,并返回一段指定格式的 XML(包含用户信息)给 CAS Client。
- 6.CAS Client 和CAS Server之间完成了一个对用户的身份核实,返回给用户CAS Client访问资源。