http://www.cnblogs.com/woxpp/p/4653769.html
单点登录
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服务搭建
环境准备:
- Tomcat7.2 http://apache.fayea.com/tomcat/tomcat-7/v7.0.63/bin/apache-tomcat-7.0.63.exe
- JDK6
- CAS Service 版本 cas-server-3.4.8-release http://download.csdn.net/detail/zhu_r_d/5487373
- Win7 虚拟机
配置服务端
- 解压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
相关推荐
这个项目可能包含配置文件、控制器代码、视图模板和其他相关资源,展示了如何在实际应用中实现CAS单点登录功能。 综上所述,.NET CAS单点登录涉及到了身份验证、票证机制、客户端和服务器之间的交互等多个核心概念...
在这个"CAS单点登录安装笔记4 -- asp.net client端的设置"中,我们将深入探讨如何将ASP.NET应用程序配置为使用CAS服务器进行身份验证。 首先,要使ASP.NET客户端与CAS服务器协同工作,我们需要在客户端应用程序中...
***实现单点登录(SSO)的方法涉及多个方面的知识,包括单点登录的基本概念、实现原理以及***环境下相关技术的应用。下面将详细介绍这些知识点。 单点登录(SSO)是一种用户登录机制,允许用户仅通过一次身份验证...
CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,简称SSO)协议。在ASP.NET环境中配置CAS客户端可以帮助开发者构建一个允许用户通过单一登录凭证访问多个应用系统的...
.NET SSO解决方案主要涉及到的是如何在多个应用系统之间实现单点登录(Single Sign-On),这是一种让用户在访问由多个独立系统组成的企业级应用时只需要登录一次的技术。在ASP.NET MVC框架下,SSO可以帮助提高用户...
本解决方案源码是针对 ASP.NET 平台设计的,日期为20121213,旨在帮助开发者理解和实现 ASP.NET 应用中的单点登录功能。 单点登录的核心原理是共享身份验证状态,通常通过中央认证服务(Central Authentication ...
在SSO2013MVC这个项目中,可能就包含了一个使用ASP.NET MVC实现的SSO解决方案,包含了认证中心的实现、票据管理以及与各子应用的交互逻辑等。 总的来说,MVC和SSO是Web开发中的两个重要概念,前者关注应用结构的...
"cas-client-3.2.1" 是一个针对CAS(Central Authentication Service)的客户端库,主要目的是为了在.NET环境中实现单点登录(Single Sign-On, SSO)功能。CAS是一种开放源码的身份验证协议,它允许用户通过一个中央...
CAS是一种开放源码的单点登录(SSO)系统,旨在简化用户身份验证过程,提高安全性,并减少用户在多个应用间反复登录的繁琐操作。 SSO(Single Sign-On)是现代企业信息化建设中不可或缺的一环,它允许用户在一个...
#### 四、.NET框架中的关键技术点 - **通用类型系统(Common Type System, CTS)**:CTS定义了所有.NET语言共享的数据类型,使得不同语言编写的代码可以无缝通信。 - **通用语言规范(Common Language ...
使用C#开发SSO系统意味着利用.NET Framework或.NET Core的优势,可以充分利用其丰富的类库和工具,如ASP.NET MVC或ASP.NET Core来构建表现层,Entity Framework进行数据访问,以及自定义服务实现业务逻辑。...
- **缓存机制:**分析了ASP.NET中缓存的实现机制,以及如何优化性能。 - **状态管理:**讲解了视图状态(ViewState)、会话状态(Session State)等状态管理技术。 **4.4 ASP.NET MVC** - **MVC架构:**介绍了Model-...
- .NET提供代码访问安全(Code Access Security, CAS)来限制代码的权限。 - 加密和身份验证服务,如SSL/TLS,确保数据传输安全。 通过深入了解这些知识点,开发者能够在.NET环境下构建高效、安全的应用,并利用...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
7. **框架和库**:C#与.NET Framework或.NET Core紧密关联,评估可能涉及对MVC、ASP.NET、Entity Framework等框架的熟练程度和使用效果。同时,了解NuGet包管理器,能有效利用社区资源,提升开发效率。 8. **设计...