CAS 实现单点登录 .NET MVC

单点登录

    Single Sign On,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

单点登录原理

  • 存储信任
  • 验证信任

CAS

  Central Authentication Service  是 Yale  大学发起的一个企业级的、开源的项目,旨在为 Web  应用系统提供一种可靠的单点登录解决方法(属于 Web SSO)。CAS  开始于 2001  年, 并在 2004  年 12  月正式成为 JA-SIG  的一个项目。

CAS执行身份验证

  

  

  

  下面是这个身份验证协议中的主要步骤。

  • 用户尝试使用应用程序的 URL 访问应用程序。用户被重定向到 CAS 登录 URL,采用的是 HTTPS 连接,他请求的服务的名称作为参数传递。这时向用户显示一个用户名/密码对话框。
  • 用户输入 ID 和密码,CAS 对他进行身份验证。如果身份验证失败,目标应用程序根本不会知道这个用户曾经试图访问它 —— 用户在 CAS 服务器上就被拦住了。
  • 如果身份验证成功,CAS 就将用户重定向回目标应用程序,并在 URL 中附加一个称为 ticket 的参数。然后,CAS 尝试创建一个称为 ticket-granting cookie 的内存 cookie。这是为了以后进行自动的重新验证;如果存在这个 cookie,就表示这个用户已经成功地登录了,用户就不需要再次输入他的用户名和密码。
  • 应用程序要检查这个 ticket 是否正确,以及是否代表一个有效用户;检查的方法是,打开一个 HTTPS 连接来调用 CAS serviceValidate URL,并作为参数传递 ticket 和服务名称。CAS 检查这个 ticket 是否有效,以及是否与请求的服务相关联。如果检查成功,CAS 就将用户名返回给应用程序。

CAS服务搭建

环境准备:

  

配置服务端 

  • 解压CAS Service,将解压后的文件中modules文件夹中的cas-server-webapp-3.4.8.war文件拷贝的%TOMCAT_HOME%\webapps下,并修改文件名为:cas.war    
  • 配置host  

    

  

  配置完成后,启动tomcat ,浏览器输入 https://test.cas.com:8080/cas    

  

    

  对于提示,必须使用HTTPS,不用理会,如果你有证书也可以配置在tomcat下,不要尝试使用keytool生成,利用keytool生成的证书,客户端在调用时无法保证有效的链接。  

  

    

  

  输入用户名admin和密码admin登录则会出现

  

  

  

  至此,说明服务端配置成功。

CAS客户端搭建  

  下载.NET CAS client  https://wiki.jasig.org/display/CASC/.Net+Cas+Client    http://downloads.jasig.org/cas-clients/dotnet/dotnet-client-1.0.2-bin.zip  

  源码下载 https://github.com/Jasig/dotnet-cas-client/tree/master/DotNetCasClient  建议下源码,方便调试与测试  

  客户端服务配置:https://wiki.jasig.org/display/CASC/.Net+Cas+Client  

  创建项目  TestMvcCas MVC4.0架构

  

  安装DotNetCasClient NuGet  http://www.nuget.org/packages/DotNetCasClient

  
  

  

  也可以将源码附加到项目中,方便调试

  

  

  

  

  

  配置web.config

  参见  https://wiki.jasig.org/display/CASC/.Net+Cas+Client   每个节点配置 这上面有详细的介绍

  

配置页面权限验证

运行解决方案,会看到未登陆的用户,会自行跳转到cas登陆界面

登陆成功之后,则会正常跳转,也可以看到站点下存在相应的COOKIE

当前登陆用户采用默认的admin账号,如果需要集成数据库,可以参考下

http://my.oschina.net/indestiny/blog/200768

下一篇争取能实现数据库集成和自定义返回数据

参考资料

  http://blog.csdn.net/cutesource/article/details/5838693

  http://www.coin163.com/java/cas/cas.html

  http://www.ibm.com/developerworks/cn/web/wa-singlesign/

  http://www.cnblogs.com/zhenyulu/archive/2013/01/27/2878935.html

时间: 2024-10-11 09:02:40

CAS 实现单点登录 .NET MVC的相关文章

单点登录 .NET MVC

CAS 实现单点登录 .NET MVC 单点登录 Single Sign On,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 单点登录原理 存储信任 验证信任 CAS Central Authentication Service  是 Yale  大学发起的一个企业级的.开源的项目,旨在为 Web  应用系统提供一种可靠的单点登录解决方法(属于 Web SSO).CAS  开始于 2001  年,

CAS SSO单点登录框架介绍

1.了解单点登录  SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多个) 3) SSO 认证中心(一个) 2.SSO 实现包含以下三个原则 1) 所有的登录都在 SSO 认证中心进行. 2) SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的用户. 3) SSO 认证中心和所有的 Web 应用建立一种信任关系. 3.了解单点登录体系结

(四)SSO之CAS框架单点登录,修改验证数据库的方式

应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deployerConfigContext.xml 这个文件中的bean  org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 的这个标签,写上对应的sql,以及在<bean id="dataSource" class=&q

CAS 实现单点登录(SSO)数据库查询认证机制-xml方式(三)

继前面介绍过基于CAS实现单点登录(SSO)的实例演示,演示过程中服务端认证机制采用的是默认配置即CAS Servier默认用户名和密码一致即可登录成功,那么本文将侧重于应用方面,真正通过查询用户名密码来进程验证用户是否可以登录. CAS Server添加相关的jar包 需要在web项目的lib下添加两个包:cas-server-support-jdbc-x.x.x.jar和 mysql-connector-java-x.x.x-bin.jar(具体版本号根据情况而定) 修改CAS Server

CAS实现单点登录流程

CAS实现单点登录 环境 客户端: www.app1.com CAS服务器: www.cas-server.com 1.浏览器:发起请求 www.app1.com 2. 客户端:AuthenticationFilter 发现Session为空,ticket为空,重定向并保存service https://www.cas-server.com/cas/login?service=http://www.web.com/app 3. CAS服务器:展示 login 页面,默认提供 username /

CAS SSO单点登录框架学习

1.了解单点登录  SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多个) 3) SSO 认证中心(一个) 2.SSO 实现包含以下三个原则 1) 所有的登录都在 SSO 认证中心进行. 2) SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的用户. 3) SSO 认证中心和所有的 Web 应用建立一种信任关系. 3.了解单点登录体系结

CAS实现单点登录实例源码

1.修改server.xml文件,如下: 注意: 这里使用的是https的认证方式,需要将这个配置放开,并做如下修改: port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clien

Springboot集成Shiro和Cas实现单点登录(服务端篇CAS5)

什么是单点登录? 先说一个需求场景,比如:一个企业的内部有N多个子系统,每个子系统都有一套自己的用户名和密码,那么企业的员工要登录N个子系统,这样一个员工 就要记住N个用户名和密码,就算各个子系统的用户名和密码都是统一的,登录每个子系统都要输入用户名和密码进行登录也是一个繁琐的操作过程,那么单点登录功能由此便应运而生了.单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应

cas sso单点登录系列4_cas-server登录页面自定义修改过程(jsp页面修改)

转:http://blog.csdn.net/ae6623/article/details/8861065 SSO单点登录系列4:cas-server登录页面自定义修改过程,全新DIY. 目标: 下面是正文: 打开cas的默认首页,映入眼帘的是满眼的中文and英文混杂体,作为一名合格的用户,我表示很不开心. 于是,打开 Nodepad++,寻找C:\tomcat7\webapps\casServer\WEB-INF\view\jsp\default\ui \casLoginView.jsp这个页