`
liwanchun_xd
  • 浏览: 123446 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

答复: 跨域的单点登录

阅读更多
我最近很仔细的深入了一下CAS,还给他们报了个bug,被接受了.
所以我想我有资格来解释一下CAS的东西吧.
CAS用来标志用户的token是存在它自己的域名下的,不是存在web应用的域名下的.CAS判断用户登录由agent决定,agent验证用户信息有两种处理.
1.如果这个用户是以前没登录过的,也就是说这个web应用的域名下没有一个agent颁发的sessionid(在cookie里)的话,那么它会跳转到CAS server的登录界面(这里由CAS server决定是否显示登录界面,还是直接就跳转回来,也就是不是每次都要求输入密码登录的).
2.CAS的登录界面会有两种处理.如果以前没登录过,也就是在CAS server自己的域名下,没有用户的token的话,就要求登录.如果有token的话,就返回一个ticket(也就是不显示登录界面直接重定向返回了).
然后接第一步里面,agent收到ticket以后就提交给CAS server验证,并取得返回信息(是个xml,cas的协议规定的,也可以用saml之类的,这个地方可以取得除了用户姓名以外的信息,这样就可以做同步了,权限的问题可以这么解决).然后agent就保存此时的session,把sessionid放到该web应用域名下的cookie里.
以上逻辑说明了,标志用户身份的token在CAS server的域名下,每个web应用不保存用户身份.因此跨域是绝对没问题的.只是single sign off就需要CAS server的配合了,要把那个token删掉.
不过如果标志身份的token不存在,而sessionid存在,那还是被认为是登录的,只不过是在等待那个session timeout而已.

如果我的理解有误,希望大家指正.

----------------------------------------------------------------
分析的很透彻!
分享到:
评论

相关推荐

    单点登陆实现(完全跨域、单点退出)

    在这个例子中,我们基于Spring MVC、Maven、WebService和Memcached来实现一个功能完善的单点登录系统,同时支持完全跨域和单点退出。 1. **Spring MVC**: Spring MVC是Spring框架的一个模块,主要用于构建Web应用...

    跨域单点登录

    跨域单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一个系统中登录后,无需再次认证即可访问其他系统。在互联网应用环境中,尤其在企业级应用中,用户通常需要访问多个相互关联但独立部署的...

    完全跨域单点登录DEMO

    "完全跨域单点登录DEMO"是针对这个概念的一个具体实现示例,它展示了如何在不同域名下的Web应用之间实现无缝的登录体验。 SSO的关键在于身份验证中心(Identity Provider,IdP)和各个服务提供者(Service Provider...

    表格制作软件中实现iframe跨域单点登陆的实现方法

    ### 知识点二:单点登录(SSO) 单点登录是一种用户登录多个相关系统时只需进行一次身份验证的方法。用户登录一个系统后,即可不需要再次登录即可访问其他授权的系统。SSO技术能够为用户提供便利,同时降低系统维护...

    java跨域单点登录实现

    Java跨域单点登录(Single Sign-On,SSO)实现是一项关键的系统集成技术,它允许用户在多个应用系统中只需登录一次,就能访问所有相互信任的应用系统,无需再次进行身份验证。本项目代码着重展示了如何在Java环境中...

    单点登录跨域iframe互相通信方案.zip

    1. **OAuth 2.0或SAML协议**:单点登录通常基于OAuth 2.0或Security Assertion Markup Language (SAML)等标准协议。这些协议定义了如何在服务提供者和身份提供者之间安全地传输认证和授权信息。 2. **JWT(JSON Web...

    一种轻量级的跨域单点登录解决方案.pdf

    一种轻量级的跨域单点登录解决方案 本文提出了一种轻量级的跨域单点登录解决方案,旨在解决现有单点登录系统设计复杂、实施困难等问题。该方案利用JavaScript和XML技术手段实现,通过在登录中心生成带有登录信息的...

    跨域访问的单点登录案例

    跨域访问的单点登录(Single Sign-On, SSO)是一种网络身份验证机制,它允许用户在一个认证域中登录后,无需再次输入凭证即可访问其他相互信任的不同域上的应用程序或服务。这种技术在多系统集成、企业级应用以及...

    SSO完整版跨域单点登录

    SSO(Single Sign-On)是单点登录的缩写,是一种网络用户身份验证的机制,允许用户在一次登录后,可以访问多个相互信任的应用系统,而无需再次进行身份验证。这个压缩包文件提供了SSO的完整实现,适用于跨域场景,...

    vue+springboot前后端分离实现单点登录跨域问题解决方法

    那就意味着做单点登录咯,至于不知道什么是单点登录的同学,建议去找一下万能的度娘。 刚接到这个需求的时候,老夫心里便不屑的认为:区区登录何足挂齿,但是,开发的过程狠狠的打了我一巴掌(火辣辣的一巴掌)。。...

    asp.net 跨域单点登录源码

    asp.net 跨域单点登录实现原理: 当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果 通过效验,返回给用户一个认证的凭据;...

    ASP.NET跨域单点登录源码

    ASP.NET跨域单点登录源码 asp.net 跨域单点登录实现原理: 当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录; 根据用户提供的登录信息,认证系统进行身份效验,如果 通过效验,...

    asp.net 跨域单点登陆Demo

    ASP.NET跨域单点登录(Single Sign-On, SSO)是一种高效的身份验证机制,它允许用户在多个相互信任的应用系统中只需登录一次,即可访问所有系统,无需再次输入用户名和密码。这种技术对于大型企业或拥有多个应用系统...

    java实11现跨域单点登录[基于.NET,Web服务的跨域单点登录系统的实现].docx

    ..java实11现跨域单点登录[基于.NET,Web服务的跨域单点登录系统的实现].docx

    java实11现跨域单点登录[基于.NET,Web服务的跨域单点登录系统的实现].pdf

    ..java实11现跨域单点登录[基于.NET,Web服务的跨域单点登录系统的实现].pdf

    aspnet+跨域单点登录源码

    ASP.NET跨域单点登录(Single Sign-On, SSO)是一种允许用户在多个相互独立的应用系统中使用同一套登录凭据的技术。这个源码包包含了实现这一功能的关键组件和示例,适合C#开发者和ASP.NET爱好者进行学习和实践。 ...

Global site tag (gtag.js) - Google Analytics