网易内部系统单点认证平台

Download Report

Transcript 网易内部系统单点认证平台

CAS协议分析
CAS1.0 vs.CAS2.0
CAS1.0
CAS1.0也称为基础模式
适用场合:参与SSO的应用都为Web应用,且各应用之间相互独立,没
有复杂的集成关系。
CAS2.0
CAS2.0称为代理模式
适用场合:
参与SSO的应用存在非Web应用(CAS使用Cookie,故非Web应用不
宜于直接做CAS的客户应用)
应用之间,存在集成关系。
CAS协议内容
Service
Proxy Ticket
TicketGranting
。ST是CAS为用户签发的访问某一service的票据。
Ticket。Proxy
Proxy
Ticket。PT是用户访问Target
Ticket
Grangting
Proxy
Ticket
TicketGranting
。TGT是CAS为用户签发
Ticket IOU。PGTIOUSerivce的
CAS协议定义了一组术语,一组票据,一组接口。
用户访问service时,service发现用户没有ST,则要求用户去CAS
Service认证成功后,CAS会生成PGT,并将值
票据。用户经由Proxy Service去CAS获取到PT后
的登录票据,拥有了TGT,用户就可以证明自己在
是CAS协议中定义的一种附加票据,它增强了
获取ST。用户向CAS发出获取ST的请求,CAS发现用户有TGT,则签
回传给Proxy
Service 。Proxy Service拿到
,再访问Target
Serivce,Target Serivce去CAS
CAS成功登录过。TGT封装了Cookie值以及此Cookie
传输、获取PGT的安全性。
发一个ST,返回给用户。用户拿着ST去访问service,service拿
PGT后,就可以为Target
Service做代理,为
术语:Client、Server、Service、Proxy、Target。
验证PT成功后,才允许用户访问。
值对应的用户信息。当HTTP请求到来时,CAS以此
ST去CAS验证,验证通过后,允许用户访问资源。
其申请PT。
Cookie值为key查询缓存中有无TGT ,如果有的话,
接口:/login、/logout
则相信用户已登录过。
/validate、/serviceValidate、/proxyValidate
/proxy
票据:TGT、ST、PGT、PGTIOU、PT
Client、CAS Server、Service三者,是通过各种票据
的传递与验证,来实现单点认证功能的。
CAS1.0协议的动画显示
场景介绍:
在本演示中,用户先访问广告合同管理系统ADM,去投
放广告,之后又去资产系统AMS,查看资产信息。
访问ADM时,用户需要先去CAS登录,之后访问AMS时,
就不需再次登录了。
https://cas.company.com/login?service=http://adm/index.html
早晨第一件事,登录
用户名/密码ADM,投放广告!
电话密保
写Cookie到浏览器
redirect ST
服务器
CAS
service=http://adm/index.html
ticket=ST-5-qRPh34B1xhe4dquzz
ST
验
证
成
功
,
返
回
用
户
数
据
便携电脑
终端
ok,认证成功,我生成Cookie、
没有传cookie过来?
TGT、ST,TGT我保存,Cookie,ST返
那去登录页面登录吧!
回到浏览器,浏览器可以用ST访问ADM
了。
好,收到ST了,我去
CAS验证一下
好,我生成用户对象,
哈哈,第一次来,我
你可以到投放页面去
给你redirect到CAS
了!
去!
服务器
服务器
ADM
AMS
CAS
服务器
再登录资产系统,看
https://cas.company.com/login?service=http://ams/index.html
CASTGC
看资产吧!
redirect ST
终端
便携电脑
个吧!
服务器
服务器
ADM
http://ams/index.html
OK,你可以查询资产
信息了
好,我去CAS验证一
哈哈,第一次来,没
下ST
有ST,去CAS申请一
redirect
http://ams/index.html?ticket= ST-2-qRPh78V1xhe4dquzz
TGC Cookie传过来了,我验证一下
是不是我生成的,哦,还真是,那
我用TGT签发一个ST,redirect给
浏览器吧
哇,只输入了一次用户名/
密码,就访问多个系统,
比原来强多了!
AMS
CAS2.0协议的动画显示
场景介绍:
Portal:企业用Portal整合了内部所有系统,员工可以直接登录
Portal去查看所有内部系统的信息。
Mail Server:老式C/S结构的邮件服务器。在Portal上线之前,员工
只能直接登录Mail Server去管理自己的邮件。
在本演示中,Portal是CAS的Proxy Service, Mail Server是Target
Service。Mail Server 需要借助于Portal去登录。
用户登录Portal时,需要去CAS认证,之后在Portal上浏览邮件信息时,
Mail Server会请求Portal为其申请PT,然后用PT去CAS验证,验证通过后,
才会返回邮件信息,这个过程,无需用户再次登录。
https://cas.company.com/login?service=http://portal/
服务器
CAS
服务器
企业
Portal
http://portal/
好,收到ST了,我去CAS
代理证来了,pgt是我
哈哈,第一次来,我
http://portal?ticket=ST-1-qRPh34B1xhe4dquzz
好,我根据用户数据生成
验证一下,顺便把pgtUrl
的代理证,pgtIou是
给你redirect到CAS
User对象,根据pgtIou取出
传给它,让它生成代理
service=http://portal
ticket= ST-1-qRPh34B1xhe4dquzz
我取代理证的钥匙。
去!
pgt,放入User对象。我当上
证PGT并传给我,我可是
没有传cookie过来?
pgtIou
pgtId
我要妥善保管!
ok,认证成功,我生成TGC、TGT、
代理了!
代理啊
那去登录页面登录吧!
验证ST成功,返回用户数据
ST,TGT我保存,TGC返回到浏览器、pgtIou
ST redirect回Portal
输入用户凭证,用户名/密码、电话密保…..
写TGC Cookie到浏览器
早晨第一件事,登录
Portal,看看公司动
态,顺便看看邮件信
息!
Mail
Server
服务器
便携电脑
终端
pgt
服务器
CAS
服务器
企业
Portal
service
唉,谁知道,提升用户体验
验证一下代理证pgt,
验
的背后,有这如此繁琐的技
PT验证没问题,你可
证
还有targetService,
成
术细节。。。。。。
以返回数据给Portal
都没问题,好,发放
功了,呵呵
PT
PT username
,
返
回
返回邮件信息
用
户
数
进去portal了,看下
据
邮件吧
PT验证通过了,我就
看到邮件了,有portal
答应你的请求,把信
真好,再也不用重新登
息传给你吧
录Mail服务器去读邮件
了。
http://portal/mail
PT
Mail
Server
targetService=mailServer
把PT传给MailServer,
MailServer也归CAS管,所
PT
让它拿着去到CAS验
以想访问MailServer,必须
证吧
得为其申请一个PT,我是代
理嘛,交给我了!
服务器
便携电脑
终端