由于信息系统集成需要,最近研究了一下CAS。从网上找了不少资料,很多是针对Java平台的,为数不多的针对.net Client的文章往往片面的介绍某个方面,照着去做确会遇到大量的问题,特别是“重定向循环”问题,网上的解决方案多种多样,而且并不能完全解决问题。通过最近几天的摸索,终于调试成功,为此,本系列随笔将详细介绍在ASP.NET中,如何通过CAS实现单点登录(Single Sign On),并针对网上的一些资料进行讨论,并提供本人针对“重定向循环”问题的解决办法。

  • 第一部分:安装配置 Tomcat
  • 第二部分:安装配置 CAS
  • 第三部分:实现 ASP.NET WebForm Client
  • 第四部分:实现基于数据库的身份验证
  • 第五部分:扩展基于数据库的身份验证
  • 第六部分:自定义登录页面

软硬件环境

  服务器 客户机
IP 地址
  • 192.168.0.123
  • 192.168.0.153
操作系统
  • Windows 2008 x64
  • Windows 7 x64
软件
  • JDK 7u11 Windows x64
  • Apache Tomcat 7.0.35
  • CAS 3.5.1
  • Visual Studio 2012
  • IIS 7(可选)

第一部分:安装配置Tomcat

1. 在服务器上安装JDK。

单击“下一步”。

单击“下一步”。

单击“下一步”。

单击“关闭”。

2. 在服务器上安装Tomcat。

单击“Next”。

单击“I Agree”。

选择“Full”安装类型,单击“Next”。

单击“Next”。

单击“Next”。

单击“Install”。

单击“Finish”。

3. 在Tomcat上配置SSL。

(1)生成证书

在C盘根目录下建立子文件夹“Keys”,用于存放证书。

单击“开始 -> 运行",输入“cmd”,单击“确定”启动命令提示符窗口。

输入“cd "c:\Program Files\Java\jre7\bin"”进入jre7的bin目录下。

执行命令“keytool -genkey -alias tomcat -keyalg RSA -storepass changeit -keystore c:\keys\.keystore -validity 3600”创建证书。如图:

(2)将证书导入的JDK的证书信任库中

第一步:导出证书。

执行命令“keytool -export -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore c:\keys\.keystore -storepass changeit”将证书导出到Keys文件夹。

第二步:将证书导入到JDK证书信任库。

执行命令“keytool -import -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore "C:\Program Files\Java\jre7\lib\security\cacerts" -storepass changeit”。系统询问是否信任此证书,回答“y”。

其他有用keytool命令(列出信任证书库中所有已有证书,删除库中某个证书):

keytool -list -v -keystore "C:\Program Files\Java\jre7\lib\security\cacerts"

keytool -delete -trustcacerts -alias tomcat -keystore "C:\Program Files\Java\jre7\lib\security\cacerts" -storepass changeit

4. 配置server.xml文件。

以管理员身份运行文字编辑器,打开%TOMCAT_HOME%\conf\server.xml。查找SSL配置并将如下内容插入其中。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="C:/Keys/.keystore"
keystorePass="changeit" />

如下图所示:

4. 测试Tomcat上SSL是否配置成功。

(1)重启Tomcat服务。如图,单击“Stop”,然后单击“Start”。

(2)打开IE浏览器,分别测试“http://localhost:8080”和“https://localhost:8443/”

由于此网站出具的安全证书不是由受信任的证书颁发机构颁发的,因此IE会有警告信息,这里我们直接点击“继续浏览此网站(不推荐)。 ”。

如果看到上面的界面,说明Tomcat的SSL配置成功。

(转)Yale CAS + .net Client 实现 SSO(1)的更多相关文章

  1. (转)Yale CAS + .net Client 实现 SSO(5)

    第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 第四部分:实现基于数据库的身份验证 第五部分:扩展基于数据库的身份验证 1. ...

  2. (转)Yale CAS + .net Client 实现 SSO(4)

    第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 第四部分:实现基于数据库的身份验证 1.下载 Microsoft JDBC ...

  3. (转)Yale CAS + .net Client 实现 SSO(2)

    第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 1. 下载 CAS 及.NET CAS client. CAS下载地址:http://www.jasig.org/cas/download ...

  4. (转)Yale CAS + .net Client 实现 SSO(6)

    第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 第四部分:实现基于数据库的身份验证 第五部分:扩展基于数据库的身份验证 第六 ...

  5. (转)Yale CAS + .net Client 实现 SSO(3)

    第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 1. 下载.NET CAS client. .NET CAS Client ...

  6. Yale CAS + .net Client 实现 SSO 的完整版

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. CAS实现单点登录SSO执行原理及部署

    一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...

  8. CAS实现单点登录SSO执行原理探究超详细

    一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...

  9. CAS实战のclient自定义过滤器

    我们在配置cas client肯定写过如下代码: <filter> <filter-name>CASFilter</filter-name> <filter- ...

随机推荐

  1. iOS开发——动画OC篇&知识点总结

    图层与动画知识点总结 1.Core Animation 非娱乐类的软件都会用到的动画,操作简单. 2.Quartz 2D绘图 是一个2D绘图引擎. (1) 绘图Context是一个绘图的目标对象,定义 ...

  2. iOS开发——UI篇Swift篇&UISwitch/UIStepper

    UISwitch/UIStepper override func viewDidLoad() { super.viewDidLoad() titleLabel.text = titleString / ...

  3. Using UTL_DBWS to Make a Database 11g Callout to a Document Style Web Service

    In this Document   _afrLoop=100180147230187&id=841183.1&displayIndex=2&_afrWindowMode=0& ...

  4. 十六进制字节 & 十六进制转二进制

    做项目也将近一年的时间了.从一开始就经常提到“一个十六进制字节”,然而一开始就是迷惑的,直到现在.     一个十六进制字节,比如:FF.周围的人经常说这是一个十六进制字节.然后我就想,这不是两个字符 ...

  5. LeetCode34 Search for a Range

    题目: Given a sorted array of integers, find the starting and ending position of a given target value. ...

  6. WPF 之 左键弹出操作菜单,并禁用右键菜单

    在目前的WPF版本中,很多的控件都有一个ContextMenu的属性,可以设置组件的右键菜单,这点确实是很方便,但是有些时候我们可能会需要当单击鼠标左键才弹出这个ContextMenu,而不是单击鼠标 ...

  7. NODE编程(四)--构建Node Web程序2

    四.提供静态文件服务 1.创建一个静态文件服务器 __dirname ,取值是该文件所在咋目录路径.分散在不同目录中的文件可以有不同的值. /** * 最进本的ReadStream静态文件服务器 */ ...

  8. 【AsyncTask整理 1】 AsyncTask几点要注意的地方

    问题1:AsyncTask是多线程吗? 答:是. 问题2:AsyncTask与Handler相比,谁更轻量级? 答:通过看源码,发现AsyncTask实际上就是一个线程池,而网上的说法是AsyncTa ...

  9. UIScrollView,contentOffset,contentInsert的各自特点和区别?

    • UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容   设置UIScrollView的contentSize属性,告诉UIScrollView ...

  10. SQL Server 2008数据类型

    在创建表时,必须为表中的每列指派一种数据类型. 今天在研究二进制存储图片时候竟然不知道image类型就是二进制类型?!所有就搜集了sql中的各种数据类型汇总,成功在于点滴积累. 1. 字符数据类型 数 ...