首页 > 编程知识 正文

cas代理认证,cas单点登录

时间:2023-05-05 13:44:56 阅读:31643 作者:911

基础知识名词解释As认证服务:认证服务,TGT发行

KDC密钥分发中心:密钥发布中心

TGS Ticket-Granting Service :票务授权服务、TGT理赔、ST发放

TGC ticket-granting cookie :授权票证证书由CAS Server通过SSL发送给最终用户。 该值存在于Cookie中,通过TGC可以找到TGT。

TGT Ticket Granting tieckt (俗称大令牌或票根,由KDC和AS发行,获得该票根后,可以直接申请其他服务票根ST,无需提供身份证明信息

ST Service Ticket :服务票证由KDC的TGS发行,ST是访问服务器内部的令牌

CAS认证过程中央认证服务(CAS )中央认证服务认证过程如下:

访问服务:由于cas客户端和web APP应用程序位于一起,因此当用户访问web APP应用程序时,cas客户端将处理面向请求的身份验证。 cas客户端检查HTTP请求是否包含ST和TGT,如果不包含,则重定向到cas服务器地址进行用户验证。 用户在浏览器中填写用户信息。 提交cas服务器认证颁发票证: cas服务器验证用户信息后,向cas客户端发布ST,在浏览器cookie中设置TGC,下次访问cas服务器时根据TGC和TGT的验证, 判断验证票证是否注册: cas客户端获取ST后,再次请求cas服务器验证ST的有效性,验证通过后,允许客户端访问并传输用户信息: cas服务器验证ST

使用phpCAS实现对www.baidu.com的访问控制

? PHP require _ once './vendor/ape reo/PHP cas/cas.PHP '; $home='http://www.baidu.com/'; $ log in _ URL=' http://10.91.156.17433608080/cas/log in? 服务='.urlencode ($ home; $ logout _ URL=' http://10.91.156.17433608080/cas/logout '; $ service _ validate _ URL=' http://10.91.156.17433608080/cas/service validate '; PHP cas :3360集调试(; 设置客户端属性PHP cas :3360 client (cas _ version _2_ 0,' 10.91.156.174 ',8080,'/cas ' ); //loginurlphpcas :3360设置setserverloginurl ($ log in _ URL )//logouturlphpcas :3360设置setserverlogouturl ($ logout 设置validateurlphpcas :3360 setserverservicevalidateurl ($ service _ validate _ URL ); //cas server设置中,ssl证书PHP cas :3360 setnocasservervalidation (; //该方法确认用户是否验证过,如果没有验证,则跳转到验证界面。 PHP cas :3360 forceauthentication (; 在php -S localhost:8080上启动服务

第一个登录过程访问控制的资源地址为http://www.baidu.com/

1 .访问服务通过访问localhost:8080访问本地WEB服务,如果发现没有用户登录信息,则生成login url并重定向到该地址。 其中login_url中的service参数表示受访问控制的资源

2 .接收到重定向响应的定向认证浏览器请求login_url,然后等待输入用户名密码

3 .用户认证用户输入用户名密码提交表单后,CAS服务器验证提交信息。 如果验证成功,浏览器将重定向到service参数后的url,稍后将携带ticket令牌。 此参数为ST。 另外,将作为访问service_url的Cookie的CASTGC设定为Cookie,仅在访问了该地址的情况下携带Cookie。

向Cookie添加CASTGC的目的是为了下次访问service_url时,在浏览器请求时携带TGC参数,服务器通过基于该TGC查找对应的TGT,判断用户是否登录TGT和TGC之间的关系类似于会话和Cookie会话id之间的关系。

4 .票证发行CAS server是否生成ST服务票证并将浏览器重定向到$service_url? ticket=$service-ticket

5 .验证票证CAS客户端以检索ticket,生成$service_validate_url,并将请求发送到$service_validate_url以验证ST。 确保ticket的URL如下所示。

3358 $ { cas _ server _ host } : $ { cas _ server _ port }/cas/service validate? 如果ticket=$ { service-ticket } service=http://www.Baidu.comcas server验证通过,将再次重定向到service_url,并在浏览器中显示相关资源

第二次登录过程1 .访问服务以访问本地WEB服务,然后跳转到login_url

2 .票务2 .以前访问过一次,所以这次要把以前获取的CASTGC带到login_url上,认证中心收到请求后,发现TGC支持TGT,用TGT发布ST,返回浏览器

3 .验证票证浏览器可以重定向到CAS服务器发布的地址,验证ST,并在验证成功后访问控制资源

简单来说,如果客户端请求服务端的login_url,拥有TGC,则客户端返回ST,如果客户端没有携带可以再次检查ST的TGC,则整个流程跳转到login_url

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。