`
lijackly
  • 浏览: 71460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多
    SSO的实现机制不尽相同,大体分为Cookie机制和Session机制
   
    Weblogic通过Session共享认证信息。Session是一种服务器端机制,但客户端访问服务器时,服务器为客户端创建一个唯一的SessionId,以使在整个交互工程中始终保持状态,而交互的信息则可由应用自行指定,因此用Session方式实现SSO,不能在多个浏览器之间实现单点登录,但可以跨域。[参考这个:http://lijackly.iteye.com/blog/805779]
   
    WebSphere采用Cookie机制,Cookie是客户端机制,存储的内容包括:名字、值
过期时间、路径和域,路径与域合在一起就构成了Cookie的作用范围,因此用Cookie方式可以实现SSO,但域名必须相同。

    单点登录分为“服务器”和“客户端”,应用程序第一次访问认证,会把原来的登录画面屏蔽掉,直接转到单点登录的登录页面,当然也可以自行设计该页面;

   
  1. 认证通过后,单点登录服务器会和应用程序进行一个比较复杂的交互(某种授权机制),CAS使用的就是所谓的Ticket;
  2. 授权完成后,CAS会把页面重定向,回到Web应用(之前的请求URL会跟在跳转到Cas的后面),这样就完成了成功的登录;
  3. 单点登录服务器会在客户端创建一个Cookie,加密的,其中保存用户登录的信息;
  4. 如果此时用户希望访问其他Web应用程序,首先仍然重定向到CAS服务器。此时CAS服务器不再要求用户输入用户名密码,而是首先自动寻找Cookie,根据Cookie中保存的信息登录,之后,CAS重定向回到要访问的客户端应用程序。


    这样就实现了单点登录。这种体系中,没有通过http进行密码的传递(有用户名传递),因此十分安全。

    CAS被设计成一个独立的Web应用,目前是通过若干个Java Servlets来实现的。CAS必须运行在支持SSL的web服务器上。应用程序(客户端)可以通过三个URL路径来使用CAS(loginURL,validation URL,logout URL)。

    要点:
  1. 客户端一开始,通常跳过原来的登录界面,而直接转向CAS自带的登录界面,当然也可以在客户端的主界面上增加一个登录之类的按钮来完成跳转工作;
  2. 如果用户喜欢,也可以手工直接进入CAS的登录界面,先进行登录,再选择登录其他的客户端应用程序(这种方式主要用户测试环境);
  3. CAS的登录界面就是所谓的"主体认证",要求输入用户米密码,和普通的登录界面一样;
  4. 主体认证时,CAS获取用户名和密码,然后通过某种认证机制进行认证,通常是LDAP(NQ是用数据库)
  5. 为了进行以后的单点登录,CAS向浏览器送回一个所谓的"内存Cookie",这种cookie并不是真的保存在内存中,而是浏览器一关闭,cookie就自动过期;
  6. 认证成功后,CAS服务器会创建一个很长的、随机生成的字符串,称为"Ticket",随后,CAS将这个Ticket和成功登录的用户,以及服务联系在一起。这个ticket是一次性使用的一种凭证,只对登陆成功的用户及其服务使用一次。使用后立刻失效;
  7. 主体认证完成后,CAS将用户的浏览器重定向,回到原来的应用;CAS客户端,在从应用程序转向CAS的时候,同时也会记录原始请求的URL,因此CAS知道谁在调用自己。CAS重定向的时候,将ticket作为一个参数传递回去;
  8.     例如:
            原始应用的网址是http://www.itil.com/,在这个网址上,一开始有如下语句,转向CAS服务器的单点登录页面https://secure.oa.com/cas/login?service=http://www.itil.com/auth.aspx;
            CAS完成主体认证后,会使用下面URL进行重定向http://www.itil.com/auth.aspx?ticket= ST-2-7FahVdQ0rYdQxHFBIkKgfYCrcoSHRTsFZ2w-20。
            收到ticket之后,应用程序需要验证ticket,这是通过将ticket传递给一个校验URL来实现的,由CAS提供。
            CAS通过校验路径获得了ticket之后,通过内部的数据库对其进行判断,如有效,则返回一个NetID给应用程序。
            随后CAS将ticket作废,并且在客户端留下一个cookie。
            以后其他应用程序就使用这个cookie进行认证(通过CAS的客户端),而不再需要输入用户名和密码。







在实际使用中:

CAS Server是一个Web应用包,部署成功后,也只是一个缺省的实现,在实际使用的时候,还需要根据实际情况做扩展和定制,最主要的是扩展认证(Authetication)接口和CAS Server的界面

     认证方式基于:数据库、XML文件、LDAP Server
          CAS中采用哪种方式认证与CAS的基本协议是分开的,可以定制和扩展

    

参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-cas/?ca=drs-tp1608
扩展基于数据库的认证方式
    
   配置DataStore
在CAS Server 中的 %CATALINA_HOME%/webapps/cas/WEB-INF/deployerConfigContext.xml 添加一个新的bean,记录数据库信息    
      2     配置AuthenticationHandler
               提供3个基于JDBC的AuthenticatonHandler,分别为
                    1、BindModeSearchDatabaseAuthenticationHandler是用所给的用户名和密码去建立数据库连接,根据连接建立是否成功来判断验证成功与否;
                    2、QueryDatabaseAuthenticationHandler通过配置一个SQL语句查询出密码,与所给密码匹配;
                    3、SearchModeSearchDatabaseAuthenticationHandler通过配置存放用户验证信息的表、用户名字段和密码字段,构造查询语句来验证;

               使用哪个,需要在deployerConfigContext.xml中设置,
分享到:
评论

相关推荐

    单点登录cas源码

    CAS(Central Authentication Service)是单点登录的一种实现,它是一个开源的身份验证框架,主要用于Web应用。本主题涉及的是CAS的源码分析。 CAS的核心功能包括身份验证、服务票证(Ticket)管理和代理认证。当...

    单点登录CAS资料

    单点登录(Single Sign-On,简称SSO)是一种网络...总的来说,单点登录CAS是一个强大的工具,它能够提高企业或组织的IT系统安全性,提升用户满意度。理解和掌握CAS的原理及实施方法,对于IT专业人员来说是十分重要的。

    基于Cas的单点登录实现

    **基于Cas的单点登录实现** 单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。它为用户提供了一种方便、高效的访问多系统的方式,同时减少...

    单点登录CAS.net客户端源码

    4. **重定向逻辑**:当用户未通过CAS验证时,客户端会根据配置的URL将用户重定向到CAS登录页面。验证成功后,CAS会将用户重定向回指定的应用URL。 5. **异常处理**:源码应包含对各种可能的错误和异常的处理,如...

    CAS单点登录demo

    通过这个“CAS单点登录demo”,你可以学习并实践如何设置和配置CAS环境,理解其工作流程,为你的多应用环境提供安全便捷的单点登录解决方案。记得在实践中不断探索和调试,以便更好地理解和掌握CAS的精髓。

    cas单点登录

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次输入...通过理解和实践CAS Server的配置以及客户端的集成,开发者可以有效地在自己的应用环境中实现单点登录功能。

    单点登录cas服务器demo及springboot客户端demo

    总结起来,这个"单点登录cas服务器demo及springboot客户端demo"项目提供了一个实践单点登录概念的实例,涵盖了CAS服务器的搭建、Spring Boot应用的CAS客户端集成,以及Shiro或Pac4j的使用。对于想要学习和理解SSO...

    cas .net单点登录

    首先,我们需要理解单点登录的概念。单点登录允许用户在一个系统中登录后,可以无须再次认证即可访问其他相互信任的系统,提高了用户体验和安全性。CAS作为一个开放标准,允许不同平台的应用程序之间进行SSO交互。 ...

    CAS单点登录配置

    首先,我们要理解单点登录的概念。单点登录是指用户在一个应用系统中登录后,可以在其他所有相互信任的应用系统中自动登录,而不需要再次输入凭证。这减少了用户的记忆负担,同时也提高了安全性,因为用户只需记住...

    cas实现单点登录 功能

    CAS(Central Authentication Service)是 Yale 大学开源的一个基于 Java 的单点登录系统,它提供了一种安全、便捷的身份验证机制。本文档将深入探讨如何使用 CAS 实现 Java 应用中的单点登录功能。 一、CAS 概述 ...

    单点登录CAS相关资料

    **自定义CAS登录页面**: CAS允许自定义登录页面以满足特定的UI需求。这个文件可能包含HTML、CSS和JavaScript,用于改变默认登录页面的外观和交互。自定义登录页面需要与CAS服务器的验证接口保持一致,以确保认证...

    .net cas单点登录

    .NET CAS(Central Authentication Service,中央认证服务)是Java平台上的一个开源身份验证框架,但同样可以与.NET环境集成,实现跨域的单点登录(Single Sign-On,简称SSO)。在.NET环境中,开发者通常会利用CAS...

    CAS单点登录配置大全

    **CAS单点登录配置大全** CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On,SSO)协议。它允许用户通过一个统一的认证系统访问多个应用系统,而无需在每个系统...

    struts2+cas单点登陆例子

    Struts2和CAS单点登录(SSO)的集成是一个常见的Web应用安全实践,它允许用户在一个系统登录后,无须再次输入凭证就能访问其他相互信任的系统。在这个例子中,我们将深入探讨如何在MyEclipse环境下使用Struts2框架与...

    CAS单点登录实例

    总的来说,CAS单点登录实例的搭建涉及多个步骤,从下载和配置必要的jar包,到修改配置文件,再到整合客户端应用,每一个环节都需要对CAS协议和SSO原理有深入理解。同时,安全性和用户体验也是实施过程中不可忽视的...

    cas单点登录官方demo

    在这个"cas单点登录官方demo"中,我们可以深入理解CAS的工作原理和实现方法。 首先,单点登录的核心概念是“一次登录,全局通行”。用户在进入系统时只需要验证一次身份,之后在访问其他关联应用时,系统会自动识别...

    网上简单的SSO CAS 单点登录源码

    本源码集合为一个简单的Java实现的SSO CAS单点登录示例,适合初学者理解和实践SSO原理。 首先,我们需要理解SSO的基本流程: 1. 用户尝试访问受保护的应用A。 2. 应用A发现用户未登录,重定向到CAS服务器的登录页面...

Global site tag (gtag.js) - Google Analytics