CAS协议介绍.doc
《CAS协议介绍.doc》由会员分享,可在线阅读,更多相关《CAS协议介绍.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CAS协议介绍中创软件商用中间件有限公司CAS协议介绍前言本文是CAS协议规范的中文译文。251. Introduction以下是CAS1.0和2.0协议的官方规范。注:CAS1.0和2.0协议大体包含两个方面的内容:各种票根(Ticket)和暴露给CAS客户的HTTP(S)URL。这些UPL(/login、/logout、/validate、/serviceValidate、/proxy、/proxyValidate等)围绕着这些票根(ST、TGC、PGT、PT等)进行活动。在此期间服务和终端服务之间会进行多次HTTPS交互。Conventions & Definitions(公约和定义)l
2、 “Client” 指的是终端用户或者是WEB浏览器。l “Server”指的是统一认证服务所在的服务器。l “Service” 指的是终端用户或者WEB浏览器试图访问的应用. l “Back-end service”是指一个服务试图代表一个client去访问一个应用,这个应用就被称为终端服务(Back-end service) 。它也被称作“target service”目标服务。注:这里的service可以包含两部分,一是应用程序本身提供的service;二是应用程序本身还可提供代理服务,使Client能够通过它的代理功能访问终端服务。按照翻译,不容易理解“终端服务”,通过下面的图可以很容
3、易看清楚它的作用。黄色区域指Client;绿色区域指Server;紫色区域指Service;蓝色区域指终端服务。其中CAS1.0中没有终端服务这一块,也没有Service的proxy,也即不能进行代理认证。2. CAS URIsCAS是一个基于HTTP的协议,这就要求其每一个组成部分可以通过特定的URIs访问到。本节将讨论每个的URIs。2.1. /login as credential requestor/login URI通过两种行为运转:一是作为一个凭证索取者,二是作为凭证接收者。根据它对凭证的反应来区分他是作为凭证索取者还是凭证接收者。如果客户端已经与CAS建立了一个单点登录的sess
4、ion,Web浏览器给CAS一个安全的cookie,里面包含有一个以字符串形式存在的身份信息TGT(Ticket-Granting Ticket),存储这个身份信息TGT的cookie就被称为票证授予的cookie(TGC- Ticket-Granting Cookie)。如果TGC里面有一个有效的TGT,CAS可以发出一个服务门票(Service Ticket,ST),这个ST可以在本规范内的其他任何情况下使用。本规范的要求。见第3.6节提供更多的资料,TGC。2.1.1. parameters下面的HTTP请求的参数可通过/login,这时它作为凭证索取者。他们都是区分大小写的,他们都必须
5、处理/login。 service可选 -客户端尝试访问的应用的标识符。在几乎所有情况下,这将是应用的URL。请注意,作为一个HTTP请求的参数,此URL的值必须是符合RFC 中URL编码的描述。(详情参见RFC 1738 4 的第2.2节)。如果没有指定service并且单点登录session尚不存在,CAS应要求具有凭证的用户发起一个单点登录session。如果没有指定service但单点登录session已经存在,CAS应显示一条消息,通知客户,这是已经登录 Renew可选 -如果此参数设置,单点登录将被绕过。在这种情况下,CAS将要求客户提交证书,不论是否存在一个CAS的单点登录ses
6、sion。这个参数与“gateway”参数不兼容。服务重定向到/login的URI和登录表单视图,张贴在/login的URI中的值不应同时出现在“renew”和“gateway”请求参数。两个参数都设置这种行为是未定义的。CAS推荐:在实施时,如果设置“renew”参数则忽略“gateway”参数。推荐:当设置“renew”参数时,其值应该为“true”。注:也就是说:https:/server/cas/login?service=serviceUrl&renew=true&gateway=true这种参数传递是错误的,不能同时出现两个参数。注:CAS协议允许客户端选择是否跳出单点登录,这就是
7、renew。它允许一个客户端通知CAS服务器总是验证一个用户,不管一个单点登录的session是否存在。这是一个非常有用的属性,当一个特定的使用CAS认证机制的服务允许访问敏感资料时,它能强迫CAS重新认证一个用户,确保登录的是一个正确的用户。这时,那个应经存在的单点登录session应该是被终止的。使用这个属性通知CAS重新验证凭证时,客户端应用应该中定向用户到以下的URL上:https:/server/cas/login?service=serviceUrl&renew=true当请求验证这个票据时,客户端可以要求CAS确保这个票据是来自一个新的认证请求。应用场景可参见:部署的客户端集成示
8、例bookshop,改变该参数值,体验效果。 Gateway可选 -如果这个参数设定,CAS将不会向客户端索要凭据。如果客户端有一个已存在的CAS单点登录的session,或者如果单点登录session可以通过非交互方式(i.e. trust authentication,信托认证)建立,CAS可以将客户端请求重定向到“service”参数指定的URL,而且还加上有效的服务票据(Service Ticket,ST)。 (CAS还可以插入一个通知页面,通知客户端一个CAS认证已经发生了。)如果客户端没有CAS单点登录的session,并且也不可能通过非交互方式建立认证,CAS必须将客户端重定向到
9、“service”参数指定的URL,并且不在URL后面附加“ticket”。如果“service”参数未指定但设置了“gateway”参数,CAS将认为这种行为未定义。在这种情况下推荐:如果两个参数都没有指定,CAS应要求凭据。同样这个参数与“renew”参数不兼容。如果要设置“gateway”参数,推荐设置为“true”。注:应用场景可参见:部署的客户端集成示例bookshop,改变该参数值,体验效果。 总结:“renew”参数的作用:在存在SSO session的情况下client请求访问资源,是重新认证用户信息还是不用认证放这个请求过去。“gateway”参数的作用:与“renew”参数
10、相反,“gateway=true”时是指只要存在SSO session就不用重新认证了。Renew始终要求用户进行主认证,所谓主认证就是借助于/login进行的认证操作,此时IE用户必须手工提供自身的帐号信息。基于TGC、PT的登录都不属于主认证。相比之下,gateway始终不会允许CAS服务器丢出/login登录页面给IE用户,从而不可能进行主认证。只要gateway=true则永远进不到/login登录页面,只有确认用户能从其他途径得到SSO session才可以设置true。2.1.2. URL examples of /loginSimple login example: https:
11、/server/cas/login?service=http%3A%2F%2FDont prompt for username/password: https:/server/cas/login?service=http%3A%2F%2F&gateway=trueAlways prompt for username/password: https:/server/cas/login?service=http%3A%2F%2F&renew=true2.1.3. response for username/password authentication当/login的行为作为凭证索取者时,根据请求
12、的证书的类型响应会有所不同。在大多数情况下,CAS作出的回应是显示登录屏幕要求输入用户名和密码。此网页必须是包括“用户名”,“密码”参数的表单。该表单也可包括 “warn”参数 。如果“service”已被指定为从/login登录,那么“service”也成了登录表单的一个参数,包含着通过/login以后最初的地址。将在第2.2.1节对这些参数进行详细的讨论。该表单必须通过HTTP POST方法来提交到/login,然后/login就作为凭据接收人,将在第2.2节讨论。2.1.4. response for trust authentication信任认证作为一种基本的认证,对各种各样的请求都
13、考虑了进去。信任认证的用户体验就是高度详尽的部署,考虑本地策略和特殊情况下认证机制的实现。当/login行为作为信任认证的票据索取者时,其行为将取决于接收的证书的类型。如果证书是有效的,CAS会立即将用户重定向到请求的服务。另外,CAS可能会显示一个警告信息:证书是存在的,并允许客户端确认它是否想利用这些证书。推荐:CAS的实施允许部署者选择首选行为。如果证书是无效的或不存在,CAS推荐显示客户端验证失败的原因,以及可能替代目前的用户身份验证的其他方式(如用户名/密码身份验证)。2.1.5. response for single sign-on authentication如果客户已经建立了
14、一个CAS的单点登录session,客户端将带着自己的HTTP会话cookie来/ Login ,并予以处理的行为将在第2.2.4节。但是,如果“renew”参数设置了,处理行为参见第2.1.3或2.1.4 。2.2. /login as credential acceptor当一组接收的证书通过了/login,/login将扮演凭证接收者的角色,具体行为将在本节定义。2.2.1. parameters common to all types of authentication当/login作为凭据接收人时,下面的HTTP请求参数可能被传递到/login。他们都是区分大小写的,它们都必须由/l
15、ogin控制。 service可选 -客户端尝试访问的应用的URL。成功验证后CAS必须将客户端重定向到这个URL。这是详细讨论了第2.2.4节。 warn可选 -如果此参数设置,单点登录将不能是透明。客户端必须被提示通过了验证正在转向请求的服务。2.2.2. parameters for username/password authentication除了在第2.2.1节指明的可选参数,当/login作为用户名/密码认证方式的接收人时,下列HTTP请求参数必须被传递到/login。他们都区分大小写。 username需要 -正在试图登录的客户端的用户名。password需要 -正在试图登录的
16、客户端的密码。It需要 -登入票证。这是的一部分在第2.1.3节的登录表单中讨论过了。登录门票将在第3.5节讨论。2.2.3. parameters for trust authenticationThere are no REQUIRED HTTP request parameters for trust authentication. Trust authentication may be based on any aspect of the HTTP request. 2.2.4. response/login作为凭证接收者时,下列其中一个回复是它必须提供的。 成功登入:在不将客户端凭证
17、传递到service的情况下,重定向客户端请求到“service”参数指定的网址。这种重定向的结果必须导致用户端向它所请求的服务发出一个GET请求。要求必须包括一个有效的服务票据(Service Ticket,ST),作为HTTP请求的参数通过,它就是“ticket” 。见附录B获取更多信息。如果“服务”未指定,CAS必须通知客户端,它已成功地开始了一个单点登录session。 未能登入:/login将再次作为凭证索取者返回。因此建议在这种情况下,CAS服务器向用户显示错误信息,说明为什么登入失败(例如密码错误,锁定帐户等) ,如果有必要的话,提供一个机会,让用户能够尝试再次登录。2.3. /
18、logout/logout用于销毁客户端的CAS单点登录会话。TGC被摧毁(第3.6节),随后请求/login将不会取得服务门票(ST),直到用户再次交出主凭证(从而建立了一个新的单点登录session)。2.3.1. parameters以下HTTP请求参数为/logout指定的。这是区分大小写的,应由/logout来处理。 url可选 -如果“url”是指定的,通过“url”参数指定的URL应该是登出页面并且带有描述性文字。例如, “您刚才的应用退出提供了一个链接,希望您的后续。请单击此处访问http:/www.go-back.edu .”2.3.2. response/logout必须展
19、示一个页面,向用户表明现在已经登出。如果“url”请求参数生效,/logout还应提供一个链接到以前登入的URL的链接 ,具体描述在第2.3.1 。2.4. /validate CAS 1.0/validate检查ST的有效性,/validate是CAS1.0协议的一部分,因此不处理代理认证。当一个代理凭证通过/validate时,CAS必须作出反应。2.4.1. parameters下面的HTTP请求的参数可以指定为/验证。它们是区分大小写的,必须全部交由/验证。 service需要 服务的标识符,是需要带着ticket访问的服务。 ticket需要 -/login发出的服务凭证(ST)。服
20、务车票的描述见3.1节。 renew可选 -如果这个参数设定,凭证验证将只在ST是来自用户的主证书时才会通过验证,如果ticket是来自SSO session,则验证失败。即,只用通过主登录页面过来的附带着ST的请求,才能被验证。2.4.2. response/validate will return one of the following two responses: On ticket validation success: yesusernameOn ticket validation failure: no2.4.3. URL examples of /validateSimple
21、validation attempt: https:/server/cas/validate?service=http%3A%2F%2F&ticket=ST-1856339-aA5Yuvrxzpv8Tau1cYQ7Ensure service ticket was issued by presentation of primary credentials: https:/server/cas/validate?service=http%3A%2F%2F&ticket=ST-1856339-aA5Yuvrxzpv8Tau1cYQ7&renew=true2.5. /serviceValidate
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAS 协议 介绍
限制150内