zoukankan      html  css  js  c++  java
  • 单点登录 .NET MVC

    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 

  • 相关阅读:
    k邻近
    C语言实现pwd—关于linux文件系统
    Linux多线程
    有关临时表
    毕设—线程池thread_pool(草)
    3-26
    3-25
    3-22
    关于中国神华
    3-20
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4668846.html
Copyright © 2011-2022 走看看