当前位置:文档之家› CAS单点登录

CAS单点登录

CAS单点登录总结一、服务端搭建1.安装JDK。

2.安装Tomcat。

安装版本Tomcat7.0.3.在Tomcat上配置SSl(1)生成证书。

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

在JDK安装文件夹下的bin文件夹(C:\ProgramFiles\Java\jre1.8.0_60\bin)下打开“命令窗口”。

(2)执行命令“keytool -genkey -alias tomcat -keyalg RSA -storepass changeit -keystore c:\keys\.keystore -validity3600”创建证书。

(3)将证书导入的JDK的证书信任库中第一步:导出证书。

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

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

执行命令“keytool -import -trustcacerts -alias tomcat -filec:\keys\tomcat.cer -keystore "C:\ProgramFiles\Java\jre7\lib\security\cacerts" -storepass changeit”。

系统询问是否信任此证书,回答“y”4、配置server.xml文件用文本编辑器管理员身份运行,打开Tomcat7.0下的server.xml文件(C:\ProgramFiles\Apache Software Foundation\Tomcat 7.0\conf\ser.xml)插入以下配置内容:<Connectorport="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" />如图:测试配置是否成功:重启Tomcat.打开浏览器,测试http://localhost:8080,和http://localhost:8443看到下图说明配置成功:若出现以下页面,选择继续浏览:二、安装配置CAS1.下载CAS,从CSDN上找的的cas-server-3.5.2下载解压后在“modules”文件夹中找到“cas-server-webapp-3.5.1.war”,将其重命名为“cas.war”2.将“cas.war”拷贝到“C:\Program Files\Apache SoftwareFoundation\Tomcat 7.0\webapps”文件夹下。

稍等一会儿刷新一下,就会看到Tomcat 自动将“cas.war”解压到“cas”文件夹中。

如下图:3.测试CAS输入localhost:8080/cas/login,出现以下页面:CAS4.0以前默认账号和密码是相同的。

输入账号密码,admin登录:输入:http://localhost:8080/cas/logout注销登录。

三.搭建.NET下的CAS服务由于在官网上提供的.NET CAS client服务下载地址已失效。

在CSDN上可以找到具体.NET CAS client服务下载。

1.配置 CAS DotNetClient。

运行DotNetClient,(1)将“DotNetCasClient”项目中“Properties”文件夹下的“AssemblyInfo.cs”删除,将“AssemblyInfo.cs.tmpl”重命名为“AssemblyInfo.cs”。

打开将“DotNetCasClient”项目中“Properties”文件夹下的“AssemblyInfo.cs”,将所有“$WCREV$”替换成“0”(或其它表示版本的数字)。

如图:(2)将“ExampleWebSite”项目根文件夹下的“web.config.sample”重命名为“web.config”打开“web.config”文件,找到“casClientConfig”节点,将“casServerLoginUrl”属性设置为“http://localhost:8080/cas/login”,将“casServerUrlPrefix”属性设置为“http://localhost:8080/cas”,将“serverName”属性设置为“http://localhost:3273/ExampleWebSite”。

从“web.config”文件中找到“authentication”节点,将“loginUrl”属性设置为“http://localhost:8080/cas/login”,将“path”属性设置为“/ExampleWebSite/”。

具体配置参考:/zhenyulu/archive/2013/01/22/2870936.html;此时配置基本完成,将将“ExampleWebSite”项目设置为启动项,启动调试,会出现页面重定向的问题。

打开“CASDotNetClient”项目中的“\Utils\HttpUtil.cs”文件,添加如下命名空间:using .Security;using System.Security.Authentication;using System.Security.Cryptography.X509Certificates;在HttpUtil类中增加如下方法:internalstaticbool CheckValidationResult(object sender, X509Certificate certificate,X509Chain chain, SslPolicyErrors errors){returntrue;}在PerformHttpGet方法中添加验证服务器证书回调自动验证代码,添加代码后的PerformHttpGet方法如下:internalstaticstring PerformHttpGet(string url, bool requireHttp200){string responseBody = null;//-- 以下新添加的代码:验证服务器证书回调自动验证ServicePointManager.ServerCertificateValidationCallback = new.Security.RemoteCertificateValidationCallback(CheckValidationResult);//-- 以上为新添加的代码HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()){if (!requireHttp200 || response.StatusCode == HttpStatusCode.OK){using (Stream responseStream = response.GetResponseStream()){if (responseStream != null){using (StreamReader responseReader = new StreamReader(responseStream)){responseBody = responseReader.ReadToEnd();}}}}}return responseBody;}2.测试CAS DotNetClient运行工程,出现如下页面:单击:Authenticated Users Only”连接,系统自动重定向到CAS登录页面;输入用户名、密码(均为“admin”),CAS自动完成登录并重定向回原有网站。

出现问题:经过CAS服务认证后,CAS服务发回请求无响应。

浏览器调显示从CAS请求的Ticket值可以返回并保存到浏览器Cooick中,但是页面路径重定向显示:302 Found重定向状态码,如图:初步判断为跨域不支持,在web.config中配置如下跨域配置:<!--跨域请求配置--><httpProtocol><customHeaders><add name="Access-Control-Allow-Methods"value="OPTIONS,POST,GET"/><add name="Access-Control-Allow-Headers"value="x-requested-with"/><add name="Access-Control-Allow-Origin"value="*" /></customHeaders></httpProtocol>并没有解决问题。

针对以上问题又简单写了一个小Demo来测试页面重定向的问题:首先引用CAS服务的dll:配置好web.config ,主要有以下配置:以下配置都直接加在其根节点下就可以。

<configSections><section name="casClientConfig"type="DotNetCasClient.Configuration.CasClientConfiguratio n, DotNetCasClient"/></configSections><casClientConfigcasServerLoginUrl="http://localhost:8080/cas/login"//自己配置的cas登录路径,下面也一样。

相关主题