CAS之SSO配置手册

CAS之SSO配置手册
CAS之SSO配置手册

CAS单点登陆配置手册

1、Yale CAS简介

CAS 是Yale (耶鲁)大学发起的一个开源项目,旨在为Web 应用系统提供一种可靠的单点登录方法,CAS 在2004 年12 月正式成为JA-SIG 的一个项目。CAS 具有以下特点:?开源的企业级单点登录解决方案。

?CAS Server 为需要独立部署的Web 应用。

?CAS Client 支持非常多的客户端(这里指单点登录系统中的各个Web 应用),包括Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

2、CAS 原理和协议

从结构上看,CAS 包含两个部分:CAS Server 和CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server。图1 是CAS 最基本的协议过程:

图 1. CAS 基础协议

CAS Client 与受保护的客户端应用部署在一起,以Filter 方式保护受保护的资源。对于访问受保护资源的每个Web 请求,CAS Client 会分析该请求的Http 请求中是否包含Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的CAS Server 登录地址,并传递Service (也就是要访问的目的资源地址),以便登录成功过后转

回该地址。用户在第3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来验证,之后系统自动重定向到Service 所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC),CAS Client 在拿到Service 和新产生的Ticket 过后,在第5,6 步中与CAS Server 进行身份合适,以确保Service Ticket 的合法性。

在该协议中,所有与CAS 的交互均采用SSL 协议,确保,ST 和TGC 的安全性。协议工作过程中会有2 次重定向的过程,但是CAS Client 与CAS Server 之间进行Ticket 验证的过程对于用户是透明的。

3、CAS服务端配置

1.准备环境

JDK1.6

apache-tomcat-6.0.14

cas-server-3.4.2

2.配置server

将cas-server war文件复制到webapps下,启动tomcat,以相同用户名或密登录成功。3.配置数据库访问方式

复制modules下面所有jar文件到cas-server的Web-inf/lib下,并复制class12.jar(oracle 数据库驱动)。

修改配置数据源,在deployerConfigContext.xml中添加数据源。

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

name="driverClassName">oracle.jdbc.driver.OracleDriver

name="url">jdbc:oracle:thin:@localhost:1521:orcl

aip

aip

修改登录验证方法,在deployerConfigContext.xml中注释原验证方式,改为数据库验证。重新启动,通过数据库验证用户成功.

三种验证方法:

相同用户名或密码

class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthentic

ationHandler" />

用select语句验证

指定表或字段

abstract="false" lazy-init="default" autowire="default">

MD5加密配置,在deployerConfigContext.xml中添加加密算法

class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">

在用户验证中加入

4.设置cas登录成功进入页面

修改\webapps\cas\WEB-INF\view\jsp\default\ui\casGenericSuccess.jsp页面,重定向到Aip 系统protal页面.

<%

response.sendRedirect("http://192.168.0.43:8080/Aip/login.jsp");

%>

5.CAS 服务端超时配置

修改cas server下\WEB-INF\sping-configuration\applicationContext.xml,

p:readTimeout="5000"

p:connectionTimeout="5000"/>

6.CAS取消HTTPS验证配置

6.1 修改cas server下\WEB-INF\deployerConfigContext.xml文件

class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationH andler" p:httpClient-ref="httpClient" p:requireSecure="false"/>

增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false为不采用。

6.2修改cas server下\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml 文件

xmlns:xsi="https://www.360docs.net/doc/6a11842139.html,/2001/XMLSchema-instance"

xmlns:p="https://www.360docs.net/doc/6a11842139.html,/schema/p"

xsi:schemaLocation="https://www.360docs.net/doc/6a11842139.html,/schema/beans

https://www.360docs.net/doc/6a11842139.html,/schema/beans/spring-beans-2.0.xsd">

Defines the cookie that stores the TicketGrantingTicket. You most likely should never modify these (especially the "secure" property).

You can change the name if you want to make it harder for people to guess.

p:cookieSecure="false"

p:cookieMaxAge="-1"

p:cookieName="CASTGC"

p:cookiePath="/cas" />

参数p:cookieSecure="true",TRUE为采用HTTPS验证,与deployerConfigContext.xml的参数保持一致。

参数p:cookieMaxAge="-1",简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。6.3修改cas server下\WEB-INF\spring-configuration\warnCookieGenerator.xml文件

class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

p:cookieSecure="true"

p:cookieMaxAge="-1"

p:cookieName="CASPRIVACY"

p:cookiePath="/cas" />

两个参数与上面同理。

7.CAS安全性设置

TGC存活周期设置

修改\WEB-INF\spring-configuration\ticketExpirationPolicies.xml文件,通过TimeoutExpirationPolicy来设置CAS TGC存活周期参数,参数默认是120分钟,在合适的范围内设置最小值,太短,会影响SSO体验,太长,会增加安全性风险。

class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy">

index="0"

value="7200000" />

Service Ticket有效设置

通过在web.xml 中设置下面的参数,能让Service Ticket 在多少秒内失效。

edu.yale.its.tp.cas.serviceTimeout

300

该参数在业务应用的条件范围内,越小越安全。

4、CAS服务端扩展

1.扩展认证接口

CAS Server 负责完成对用户的认证工作,它会处理登录时的用户凭证(Credentials) 信息,用户名/密码对是最常见的凭证信息。CAS Server 可能需要到数据库检索一条用户帐号信息,也可能在XML 文件中检索用户名/密码,还可能通过LDAP Server 获取等,在这种情况下,CAS 提供了一种灵活但统一的接口和实现分离的方式,实际使用中CAS 采用哪种方式认证是与CAS 的基本协议分离开的,用户可以根据认证的接口去定制和扩展。

扩展AuthenticationHandler

CAS 提供扩展认证的核心是AuthenticationHandler 接口,该接口定义如清单1 下:

清单 1. AuthenticationHandler定义

public interface AuthenticationHandler {

/**

* Method to determine if the credentials supplied are valid.

* @param credentials The credentials to validate.

* @return true if valid, return false otherwise.

* @throws AuthenticationException An AuthenticationException can contain

* details about why a particular authentication request failed.

*/

boolean authenticate(Credentials credentials) throws AuthenticationException;

/**

* Method to check if the handler knows how to handle the credentials

* provided. It may be a simple check of the Credentials class or something

* more complicated such as scanning the information contained in the

* Credentials object.

* @param credentials The credentials to check.

* @return true if the handler supports the Credentials, false othewrise.

*/

boolean supports(Credentials credentials);

}

该接口定义了 2 个需要实现的方法,supports ()方法用于检查所给的包含认证信息的Credentials 是否受当前AuthenticationHandler 支持;而authenticate() 方法则担当验证认证信息的任务,这也是需要扩展的主要方法,根据情况与存储合法认证信息的介质进行交互,返回boolean 类型的值,true 表示验证通过,false 表示验证失败。

CAS3中还提供了对AuthenticationHandler 接口的一些抽象实现,比如,可能需要在执行authenticate() 方法前后执行某些其他操作,那么可以让自己的认证类扩展自清单2 中的抽象类:

清单 2. AbstractPreAndPostProcessingAuthenticationHandler定义

public abstract class AbstractPreAndPostProcessingAuthenticationHandler

implements AuthenticateHandler{ protected Log log = LogFactory.getLog(this.getClass());

protected boolean preAuthenticate(final Credentials credentials) {

return true;

}

protected boolean postAuthenticate(final Credentials credentials,

final boolean authenticated) {

return authenticated;

}

public final boolean authenticate(final Credentials credentials)

throws AuthenticationException {

if (!preAuthenticate(credentials)) {

return false;

}

final boolean authenticated = doAuthentication(credentials);

return postAuthenticate(credentials, authenticated);

}

protected abstract boolean doAuthentication(final Credentials credentials)

throws AuthenticationException;

}

}

AbstractPreAndPostProcessingAuthenticationHandler 类新定义了preAuthenticate() 方法和postAuthenticate() 方法,而实际的认证工作交由doAuthentication() 方法来执行。因此,如果需要在认证前后执行一些额外的操作,可以分别扩展preAuthenticate()和ppstAuthenticate() 方法,而doAuthentication() 取代authenticate() 成为了子类必须要实现的方法。

由于实际运用中,最常用的是用户名和密码方式的认证,CAS3 提供了针对该方式的实现,如清单3 所示:

清单 3. AbstractUsernamePasswordAuthenticationHandler 定义

public abstract class AbstractUsernamePasswordAuthenticationHandler extends

AbstractPreAndPostProcessingAuthenticationHandler{

...

protected final boolean doAuthentication(final Credentials credentials)

throws AuthenticationException {

return authenticateUsernamePasswordInternal((UsernamePasswordCredentials) credentials);

}

protected abstract boolean authenticateUsernamePasswordInternal(

final UsernamePasswordCredentials credentials) throws AuthenticationException;

protected final PasswordEncoder getPasswordEncoder() {

return this.passwordEncoder;

}

public final void setPasswordEncoder(final PasswordEncoder passwordEncoder) { this.passwordEncoder = passwordEncoder;

}

...

}

基于用户名密码的认证方式可直接扩展自AbstractUsernamePasswordAuthenticationHandler,验证用户名密码的具体操作通过实现authenticateUsernamePasswordInternal() 方法达到,另外,通常情况下密码会是加密过的,setPasswordEncoder() 方法就是用于指定适当的加密器。

从以上清单中可以看到,doAuthentication() 方法的参数是Credentials 类型,这是包含用户认证信息的一个接口,对于用户名密码类型的认证信息,可以直接使用UsernamePasswordCredentials,如果需要扩展其他类型的认证信息,需要实现Credentials接口,并且实现相应的CredentialsToPrincipalResolver 接口,其具体方法可以借鉴UsernamePasswordCredentials 和UsernamePasswordCredentialsToPrincipalResolver。

2.扩展JDBC认证方法

用户的认证信息通常保存在数据库中,因此本文就选用这种情况来介绍。将前面下载的

cas-server-3.1.1-release.zip 包解开后,在modules 目录下可以找到包

cas-server-support-jdbc-3.1.1.jar,其提供了通过JDBC 连接数据库进行验证的缺省实现,基于该包的支持,我们只需要做一些配置工作即可实现JDBC 认证。

JDBC 认证方法支持多种数据库,DB2, Oracle, MySql, Microsoft SQL Server 等均可,这里以DB2 作为例子介绍。并且假设Oracle数据库名:orcl,数据库登录用户名:wuxi,数据库登录密码:wuxi,用户信息表为:UIM_USER,该表包含用户名和密码的两个数据项分别为USERID 和PWD。

1). 配置DataStore

打开文件%CATALINA_HOME%/webapps/casServer/WEB-INF/deployerConfigContext.xml,添加一个新的bean 标签,对于Oracle,内容如清单4 所示:

清单 4. 配置DataStore

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@192.168.0.175:1521:orcl

wuxi

wuxi

其中id 属性为该DataStore 的标识,在后面配置AuthenticationHandler 会被引用,另外,需要提供DataStore 所必需的数据库驱动程序、连接地址、数据库登录用户名以及登录密码。

2). 配置AuthenticationHandler

在cas-server-support-jdbc-3.1.1.jar 包中,提供了3 个基于JDBC 的AuthenticationHandler,分别为BindModeSearchDatabaseAuthenticationHandler, QueryDatabaseAuthenticationHandler, SearchModeSearchDatabaseAuthenticationHandler。其中BindModeSearchDatabaseAuthenticationHandler 是用所给的用户名和密码去建立数据库连接,根据连接建立是否成功来判断验证成功与否;QueryDatabaseAuthenticationHandler 通过配置一个SQL 语句查出密码,与所给密码匹配;SearchModeSearchDatabaseAuthenticationHandler 通过配置存放用户验证信息的表、用户名字段和密码字段,构造查询语句来验证。

使用哪个AuthenticationHandler,需要在deployerConfigContext.xml 中设置,默认情况下,CAS 使用一个简单的username=password 的AuthenticationHandler,在文件中可以找到如下一行:,我们可以将其注释掉,换成我们希望的一个AuthenticationHandler,比如,使用QueryDatabaseAuthenticationHandler 或SearchModeSearchDatabaseAuthenticationHandler 可以分别选取清单5 或清单6 的配置。清单 5. 使用QueryDatabaseAuthenticationHandler

class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

清单 6. 使用SearchModeSearchDatabaseAuthenticationHandler

class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"

abstract="false" lazy-init="default" autowire="default"

dependency-check="default">

UIM_USER

USERID

PWD

另外,由于存放在数据库中的密码通常是加密过的,所以AuthenticationHandler 在匹配时需要知道使用的加密方法,在deployerConfigContext.xml 文件中我们可以为具体的AuthenticationHandler 类配置一个property,指定加密器类,比如对于QueryDatabaseAuthenticationHandler,可以修改如清单7所示:

清单7. 添加passwordEncoder

value=" SELECT PWD FROM UIM_USER WHERE LOWER(USERID) = LOWER(?)" />

其中myPasswordEncoder 是对清单8 中设置的实际加密器类的引用:

清单8. 指定具体加密器类

class="org.jasig.cas.authentication.handler.MyPasswordEncoder"/>

这里MyPasswordEncoder 是根据实际情况自己定义的加密器,实现PasswordEncoder 接口及其encode() 方法。

3). 部署依赖包

在以上配置完成以后,需要拷贝几个依赖的包到casServer应用下,包括:

?将cas-server-support-jdbc-3.1.1.jar 拷贝到%CATALINA_HOME%/webapps/casServer/ WEB-INF/lib 目录。

?数据库驱动ojdbc14.jar拷贝到%CATALINA_HOME%/webapps/casServer/WEB-INF/lib 目录。对于其他数据库,同样将相应数据库驱动程序拷贝到该目录。

?DataStore 依赖于commons-collections-3.2.jar, commons-dbcp-1.2.1.jar,

commons-pool-1.3.jar,需要到apache 网站的Commons 项目下载以上3 个包放

进%CATALINA_HOME%/webapps/casServer/WEB-INF/lib 目录。

扩展CAS Server 界面

CAS 提供了2 套默认的页面,分别为“default ”和“simple ”,分别在目录“casServer /WEB-INF/view/jsp/default ”和“casServer/WEB-INF/view/jsp/simple ”下。其中default 是一个稍微复杂一些的页面,使用CSS,而simple 则是能让CAS 正常工作的最简化的页面。在部署CAS 之前,我们可能需要定制一套新的CAS Server 页面,添加一些个性化的内容。最简单的方法就是拷贝一份default 或simple 文件到“casServer/WEB-INF/view/jsp ”目录下,比如命名为newUI,接下来是实现和修改必要的页面,有4 个页面是必须的:?casConfirmView.jsp: 当用户选择了“warn ”时会看到的确认界面?casGenericSuccess.jsp: 在用户成功通过认证而没有目的Service时会看到的界面?casLoginView.jsp: 当需要用户提供认证信息时会出现的界面

?casLogoutView.jsp: 当用户结束CAS 单点登录系统会话时出现的界面

CAS 的页面采用Spring 框架编写,对于不熟悉Spring 的使用者,在修改之前需要熟悉该框架。

页面定制完过后,还需要做一些配置从而让CAS 找到新的页面,拷贝

“casServer/WEB-INF/classes/default_views.properties ”,重命名为

“casServer/WEB-INF/classes/ newUI_views.properties ”,并修改其中所有的值到相应新页面。最后是更新“casServer/WEB-INF/cas-servlet.xml ”文件中的viewResolver,将其修改为如清单9 中的内容。

清单9. 指定CAS 页面

class="org.springframework.web.servlet.view.ResourceBundleViewResolver" p:order="0">

${cas.viewResolver.basename}

newUI_views

CAS Server测试

启动Tomcat1,在地址栏中输入:

https://yanjz:8443/casServer/login

能够显示登陆画面,则表示CAS Server配置成功

5、HTTPS验证配置

1.生成server key

进入cmd转到E:\下输入

keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600

注:参数-validity 指证书的有效期(天),缺省有效期很短,只有90天。

生成证书时,您的名字与姓氏是什么,必须添域名或cas server机器名,否则SSL将不能取得TGC信息。(证书至关重要,直接影响CAS是否能正常工作)

生成server.keystore文件成功.

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

第一步是导出证书,命令如下:

keytool -export -trustcacerts -alias casserver -file server.cer -keystore server.keystore -storepass changeit

第二步是导入到证书信任库,命令如下:

keytool -import -trustcacerts -alias casserver -file server.cer -keystore

D:\Java\jre1.6.0_02\lib\security\cacerts -storepass changeit

注:根据不同的JDK版本证书需要导入jdk/jre中。

列出所导入证书

keytool -list -v -keystore D:\Java\jre1.6.0_02\lib\security\cacerts

删除存在的证书

Keytool -delete -trustcacerts -alias

casserver -keystore D:\Java\jre1.6.0_02\lib\security\cacerts -storepass changeit

3.配置TOMCAT

将生成证书复制到tomcat主目录下,修改%TOMCAT_HOME%\conf\server.xml,添加如下配置

port="8443" minSpareThreads="5" maxSpareThreads="75"

enableLookups="true" disableUploadTimeout="true"

acceptCount="100" maxThreads="200"

scheme="https" secure="true" SSLEnabled="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="e:/servercas1.keystore"

keystorePass="changeit"/>

keystoreFile为已经生成的服务器证书的地址

keystorePass为自定义的服务器证书的密码

以https://127.0.0.1:8443/cas登录页面,提示安全警报

选择”是”转向登录页面,输入用户名,密码,登录成功,IE地址栏信息如下:

https://127.0.0.1:8443/cas/login;jsessionid=734BACB812F9877005C2033EA59CA9E8

6、CAS客户端配置(JAVA)

1.导入服务端生成证书

复制cas服务端生成证书server.cer 到客户端,将证书导入JDK中

keytool -import -trustcacerts -alias casserver -file server.cer -keystore

D:\Java\jre1.6.0_02\lib\security\cacerts -storepass changeit

2.配置客户web.xml文件

在客户端web.xml文件中加载如下代码

org.jasig.cas.client.session.SingleSignOutHttpSessionListener

CAS Single Sign Out Filter

org.jasig.cas.client.session.SingleSignOutFilter

CAS Filter

edu.yale.its.tp.cas.client.filter.CASFilter

edu.yale.its.tp.cas.client.filter.loginUrl

https://dfsoft_cas:8443/cas/login

edu.yale.its.tp.cas.client.filter.validateUrl

https://dfsoft_cas:8443/cas/serviceValidate

edu.yale.its.tp.cas.client.filter.serverName

192.168.0.43:8080

CAS Single Sign Out Filter

/*

CAS Filter

/*

客户端登录成功:

http://192.168.0.43:8080/Aip/login.jsp?ticket=ST-4-fT9QmfvoLQgNMF4ixZeM-cas 3.CAS Client端的获取用户信息

在Java 中通过Session 获取登录用户名

String username = (String)session.getAttribute(CASFilter.CAS_FILTER_USER);

或者

String username = (String)session.getAttribute("https://www.360docs.net/doc/6a11842139.html,er");

在JSTL 中获取用户名的方法

Cas3.1.6客户端获取登录用户信息

AttributePrincipal principal =

(AttributePrincipal)this.getRequest().getUserPrincipal();

String username = principal.getName();

在.net中如何获取请参考Java方式

4.获得更完整的受认证用户信息对象CASReceipt Java Bean

CASReceipt receipt = (CASReceipt )session.getAttribute(CASFilter.CAS_FILTER_RECEIPT);

或者

CASReceipt receipt = (CASReceipt )session.getAttribute("edu.yale.its.tp.cas.client.filter.receipt");

7、CAS客户端配置(https://www.360docs.net/doc/6a11842139.html,)

https://https://www.360docs.net/doc/6a11842139.html,/display/CASC/https://www.360docs.net/doc/6a11842139.html,+Forms+Authentication 1、把DotNetCasClient.cs复制到DotNet项目

2、新建loginPage.aspx,Page_Load加入代码

DotNetCASClient.DotNetCASClientServiceValidate client = new DotNetCASClient.DotNetCASClientServiceValidate();

String userId = client.Authenticate(Request, Response, false);

if (userId.Equals("failed"))

{

//Handle the auth failure...

}else{

Session[DotNetCASClient.SessionHandle.getUserSession()] = userId;

FormsAuthentication.RedirectFromLoginPage(userId, false);

}

注意:FormsAuthentication.RedirectFromLoginPage这个方法。

2、在Default.aspx的Page_Load内加入获得用户的代码:

4、修改web.config文件

8、CAS客户端3.1.10升级方法

2.0版的CAS单点登陆存在无法注销的问题,一级平台对CAS进行了升级,具体步骤如下: 1.第一步:

删除工程中的WEB-INF\lib\casclient.jar,将cas-client-core-3.1.10.jar拷贝到WEB-INF\lib\目录中.

2.第二步:

修改web.xml文件,将以下内容拷贝到web.xml文件中,其中蓝色字体部分需要根据实际系统的情况配置.范例请参照《web范例.xml》

CAS Single Sign Out Filter

org.jasig.cas.client.session.SingleSignOutFilter

CAS Single Sign Out Filter

/*

org.jasig.cas.client.session.SingleSignOutHttpSessionListener

CAS Authentication Filter

org.jasig.cas.client.authentication.AuthenticationFilter

casServerLoginUrl

https://dzzw.ds.ordos:8443/casServer/login

renew

false

gateway

false

serverName

http://dzzw.ds.ordos

CAS Validation Filter

org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter

casServerUrlPrefix

https://dzzw.ds.ordos:8443/casServer

serverName

http://dzzw.ds.ordos

CAS_SSO单点登录实例详细步骤

CAS SSO单点登录实例详细步骤 原创作者:孙俊财

第一步 1、用keytool生成证书: 命令: keytool -genkey -alias sjc -keyalg RSA -keysto re c:/store/mykey 说明: 这里-alias sjc 是表示生成的这个证书的别名叫sjc,-keyalg RSA 指的是采用的RSA算法,-keystore c:/store/mykey是指生成的证书存储的位置。回车后会提示你输入keystore password,这可以自己定(这里输入sunjuncai,下面配tomcat时要用的),然后是一些个人信息及组织信息,可以轻松搞定。 注意:密码输入后,会让你输入其他信息,记得这里第一个姓名必须是服务器的域名这里我输入的是完整计算机名称:gaofeng.nmc.hamcc 这里要注意如果不这样写就会报如下异常: java.io.IOException: HTTPS hostname wrong: should be 实战: C:\Documents and Settings\wangyoushi8>keytool -genkey -alias sjc -keyalg RSA -keystore c:/store/mykey 输入keystore密码:sunjuncai

您的名字与姓氏是什么? [Unknown]:gaofeng.nmc.hamcc 您的组织单位名称是什么? [Unknown]:上海神洲数港 您的组织名称是什么? [Unknown]:网络优化 您所在的城市或区域名称是什么? [Unknown]:郑州 您所在的州或省份名称是什么? [Unknown]:河南 该单位的两字母国家代码是什么 [Unknown]:ZH CN= gaofeng.nmc.hamcc, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=ZH 正确吗? [否]:y 输入的主密码 (如果和keystore 密码相同,按回车): 2、创建证书后,就导出证书: 命令: keytool -export -file c:/store/server.crt -alias sjc -keystore c:/store/mykey 说明: 从c:/store/mykey里取出证书入到c:/store/下,如果没有指定,就是存放在目录下C:\Documents and Settings\用户目录名\ 实战: C:\Documents and Settings\wangyoushi8>keytool -export -file c:/store/server.crt -alias sjc -keystore C:/store/mykey 输入keystore密码:sunjuncai 保存在文件中的认证 3、为客户端的JVM导入密钥: 命令: keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 说明: 注意:输入密码时密码为"changeit",这是默认密码. 特别说明:这个D:/jdk1.5.0_12/jre/lib/security/cacerts是指JDK的JRE路径下的lib目录. 至此,第一步完成。 实战: C:\Documents and Settings\wangyoushi8> keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 输入keystore密码:changeit

CAS单点登录配置全过程

CAS配置全过程 软件工具: 1.cas-server-3.3.5-release.zip(CAS服务端) 2.cas-client- 3.1.10-release.zip(CAS客户端) 3.apache-tomcat-7.0.40 https://www.360docs.net/doc/6a11842139.html,mons-dbcp-all-1.3-r699049.jar 5.mysql-connector-java-5.1.18-bin.jar 6.cas-server-jdbc-3.0.5-rc2.jar 写在前面的话 此配置是根据当前系统,当前的版本,仅供参考,如果有什么其他的问题可以一起研究。 第一节:先走通技术障碍 第一步:环境部署 1.在Tomcat 根目录下创建一个cas目录。 2.下载CAS服务器并解压,打开cas-server- 3.3.5\modules,将cas-server-webapp-3.3.5.war复制到刚刚在Tomcat创建的cas目录下,并重命名为ROOT.war 3.修改host文件(C:\Windows\System32\drivers\etc)添加 127.0.0.1 https://www.360docs.net/doc/6a11842139.html, 注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,

可以不配置此项,下文有用到https://www.360docs.net/doc/6a11842139.html,,可以用相应PC机的IP代替 4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml) 添加内容: 5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入https://www.360docs.net/doc/6a11842139.html,:8080如果出现以下界面,则CAS服务端配置成功。 注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。 第二步:配置数据库验证 1.打开deployerConfigContext.xml,在apache-tomcat-7.0.40\cas\ROOT\WEB-INF目录下,找到如下代码: 添加下面代码: 2.增加数据源dataSource, 在deployerConfigContext.xml,(跟上面同一个文件)找到 ,在下面添

CAS认证实现单点登录

CAS认证实现单点登录 一.背景 有几个相对独立的java的web应用系统,各自有自己的登陆验证功能,用户在使用不同的系统的时候,需要登陆不同的系统。现在需要提供一个 统一的登陆/登出界面,而不修改各个系统原来的登陆验证机制。于是采用单点登录系统开源单点登录产品CAS。 随着新的业务网站不断的增加,用户在每个应用系统中都有独立的账号,这样就造成在访问不同的应用系统时,需要记录对应的用户名和密码,多 个用户名密码极易记混,如果忘记或记错了某一个业务网站的用户名或密码就无法进行登录,耽误工作,影响工作效率 允许用户一次性进行认证之后,就访问系统中不同的应用 二.原理 CAS 是一个独立的web 应用, 当前使用Java Servlets 实现,通过HTTPS 协议保证其数据的传输安全性。它通过三个Url 地址进行访问:登录Url、验证URL、注销URL。

三. CAS认证集成 要使用单点登录,需要部署CAS系统,CAS服务端可以直接部署在tomcat下运行,对于CAS服务端来说,所有要集成单点登录的web应用都是它的一个客户端,CAS有客户端jar包,客户端web应用需要引入CAS客户端的jar包,这样CAS系统的服务端和客户端web应用程序端才能通信。 客户端web应用程序的通过配置web.xml,添加CAS需要的各种过滤器,来实现和CAS服务器通信,用户信息验证工作在CAS 服务端统一完成,验证通过后,客户端web应用程序只需要补全自己的Session信息即可。 3.1部署CAS系统服务端 步骤1:准备好以下运行环境 jdk1.6+

tomcat6+ jdk与tomcat的下载、安装、配置在此略过。 步骤2:安装部署cas-server 到官网(https://www.360docs.net/doc/6a11842139.html,/cas/cas-server-3.5.0-release.zip)下载cas-server-3.5.0-release.zip。解压缩以后,在其路 径 cas-server-3.5.0\modules 下面找到 cas-server-webapp-3.5.0.war,将其拷贝到 tomcat 的webapps 下,改名为 cas.war, 并修改 war 包中配置文件 cas.properties 里的 cas server name=cas 并启动 tomcat,启动后可在浏览器访 问 http://localhost:8080/cas/login

CAS单点登录

CAS单点登录总结 一、服务端搭建 1.安装JDK。 2.安装Tomcat。安装版本Tomcat7.0. 3.在Tomcat上配置SSl (1)生成证书。在C盘根目录下建立子文件夹“Keys”,用于存放证书。在 JDK安装文件夹下的bin文件夹(C:\Program Files\Java\jre1.8.0_60\bin)下打开“命令窗口”。 (2)执行命令“keytool -genkey -alias tomcat -keyalg RSA -storepass changeit -keystore c:\keys\.keystore -validity 3600”创建证书。 (3)将证书导入的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” 4、配置server.xml文件 用文本编辑器管理员身份运行,打开Tomcat7.0下的server.xml文件(C:\Program

CAS实现单点登录(SSO)经典完整教程

一、简介 1、cas是有耶鲁大学研发的单点登录服务器 2、本教材所用环境 ?Tomcat7.2 ?JDK6 ?CAS Service 版本 cas-server-3.4.8-release ?CAS Client版本 cas-client-3.2.1-release 二、生成证书 证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用了 JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。 中文官方网站:https://www.360docs.net/doc/6a11842139.html,/cn/ 1、用JDK自带的keytool生成证书 view plain 1.命令:keytool -genkey -alias smalllove -keyalg RSA -keystore D:/keys/smallkey 此命令是生成一个证书,其中smalllove 是证书别名 此命令的执行如图所示:

其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,注意不要写IP。 2、导出证书 view plain

1.命令:C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey 如图: 密码为上步设置的密码。 3、把证书导入到客户端JDK中。 view plain 1.命令:keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove 此命令是把证书导入到JDK中。 如图:

单点登录_尚学堂CAS讲义

一.SSO (Single Sign-on)原理 SSO 分为Web-SSO和桌面SSO。桌面SSO 体现在操作系统级别上。Web-SSO体现在客户端,主要特点是:SSO 应用之间使用Web 协议( 如HTTPS) ,并且只有一个登录入口。我们所讲的SSO,指Web SSO 。 SSO 的体系中,有下面三种角色: ?User(多个) ?Web应用(多个) ?SSO认证中心(一个) SSO 实现模式千奇百怪,但万变不离其宗,包含以下三个原则: ●所有的登录都在 SSO 认证中心进行。 ●SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的 用户。 ●SSO 认证中心和所有的 Web 应用建立一种信任关系。 二.CAS 的基本原理 CAS(Central Authentication Service) 是Yale 大学发起的构建Web SSO 的Java开源项目。 1.CAS 的结构体系 ◆CAS Server CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/ 密码等凭证(Credentials) 。 ◆CAS Client CAS Client部署在客户端,当有对本地Web 应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server 进行认证。 2.CAS 协议 基础协议

上图是一个基础的CAS 协议,CAS Client 以过滤器的方式保护Web 应用的受保护资源,过滤从客户端过来的每一个Web 请求,同时,CAS Client 会分析HTTP 请求中是否包请求Service Ticket( 上图中的Ticket) ,如果没有,则说明该用户是没有经过认证的,CAS Client 会重定向用户请求到CAS Server (Step 2 )。Step 3 是用户认证过程,如果用户提供了正确的认证信息,CAS Server 会产生一个随机的Service Ticket ,会向User 发送一个Ticket granting cookie (TGC) 给User 的浏览器,并且重定向用户到CAS Client (附带刚才产生的Service Ticket),Step 5 和Step6 是CAS Client 和CAS Server 之间完成了一个对用户的身份核实,用Ticket 查到Username ,认证通过。 3.CAS 如何实现SSO 当用户访问Helloservice2再次被重定向到CAS Server 的时候,CAS Server 会主动获到这个TGC cookie ,然后做下面的事情: 1)如果User 的持有TGC 且其还没失效,那么就走基础协议图的Step4 ,达到了 SSO 的效果。 2)如果TGC 失效,那么用户还是要重新认证( 走基础协议图的Step3) 。 三.实践配置 下面我们以tomcat 5.5 为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。 软件环境:tomcat 5.5 ant-1.6.5, jdk1.5.0_06 下载cas-server-3.0.4.zip和cas-client和cas-server-jdbc-3.0.5-rc2.jar和mysql 5.0.16和tomcat 5.5.15 https://www.360docs.net/doc/6a11842139.html,/downloads/cas/cas-server-3.0.4.zip

CAS3.5.2单点登录详解

服务端cas: 从网上下载cas:https://www.360docs.net/doc/6a11842139.html,/ 在cas下: 在cas-client下: 解压cas-server-3.5.2-release.zip\cas-server-3.5.2\module\cas-server-webapp-3.5.2.war部署到tomcat上, 设置 F:\apache-tomcat-6.0.30\webapps\cas\WEB-INF\cas-servlet.xml(大家取实际情况的路径) 默认为false,这个设置是为了让登出(logout)以后进入到指定页面. 设置deployerConfigContext.xml 配置数据源和加密: oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:orcl require require 然后注释掉下面这行,这行是为了测试使用,只要账号密码相同就可以通过验证

软件工程-使用CAS实现SSO简洁教程

目录 0. 文档介绍 (2) 0.1文档目的 (2) 0.2文档范围 (2) 0.3读者对象 (2) 0.4参考文献 (2) 0.5术语与缩写解释 (2) 1.概述 (3) 1.1背景 (3) 1.2环境 (3) 1.3下载资源 (3) 2. 配置CAS SERVER (4) 2.1简单配置 (4) 2.2数据库验证配置 (5) 2.3参数配置 (8) 2.4HTTPS验证配置 (10) 2.5自定义页面 (13) 3. 配置JAVA CLIENT (16) 3.1HTTPS验证 (16) 3.2HTTP验证 (18) 4. 配置DOTNET CLIENT (19) 5. 配置PHP CLIENT (23) 6. 如何实现单点注销 (23)

0. 文档介绍 0.1 文档目的 记录使用CAS实现SSO的过程。 0.2 文档范围 使用CAS实现SSO的过程。 0.3 读者对象 任何有兴趣的家伙。 0.4 参考文献 提示:列出本文档的所有参考文献(可以是非正式出版物),格式如下:[标识符] 作者,文献名称,出版单位(或归属单位),日期 大部分都是网络上查询的资料,很多,不列举了。 0.5 术语与缩写解释

1.概述 1.1背景 单点登录是必须的,实现方式颇多,这里就说使用CAS的实现方式。使用CAS实现SSO,网络上说明很多,大部分都是从制作证书开始,而实际上是可以不使用HTTPS 验证,这样更方便。 单点登录的原理是通过拦截你设定的URL,并跳转到你指定的CAS SERVER登录页,当你登录成功后,带着TICKET,返回到你打开的URL。然后你就可以一票在手,畅通无阻。 网上有个家伙用旅游的套票来解释单点登录,非常形象。当你到达一个旅游区门口,你可以买一个套票,套票规定你可以游览N个景点,进入这些景点的时候,你不需要再买票,也就实现了单点登录。 同时,也可以借用这个比喻说明一下单点注销。当你打开一个应用A时,单击了注销按钮,跳转到http://hostname:port/cas/logout或者https://hostname:port/cas/logout,系统显示注销成功。此时,IE窗口没有关闭,你继续打开应用A,仍然没有注销成功,不需要登录。这就相当于你已经在旅游景点内,即使你把套票撕毁了,你仍然可以继续参观这个景点,不会把你驱逐出去。但是,你再也进不了其它的景点了。 那么怎么实现立即生效的注销呢?或者这种方式是否就满足我们的需求呢? 1.2环境 Windows XP、JDK1.6.03、Tomcat6.0.20 注意:配置好环境变量。 1.3下载资源 服务器端:https://www.360docs.net/doc/6a11842139.html,/downloads/cas 当前最新版本是3.3.4,测试安装的版本为3.3.3 cas-server-3.3.3-release.zip 客户端:https://https://www.360docs.net/doc/6a11842139.html,/svn/cas-clients/ cas-client-2.0.11.zip JAVA支持单点登录 cas-client-3.1.8-release.zip JAVA支持单点注销 dotnet-client DOTNET支持类 phpcas PHP支持

CAS 单点登录操作文档

这人CAS 在 Tomcat 中实现单点登录 1证书生成及导入 1.1Server端证书配置 1.2 JAVA信任证书库 D:\Program Files\Java\jdk1.5.0\jre\lib\security\cacerts cacerts证书库默认密码-storepass changeit 查看证书 1.1.1.2 keytool -list -keystore cacerts -storepass changeit 如果存在则删除 1.1.1.1 keytool -delete -alias tomcatsso -keystore cacerts -storepass changeit 创建证书库 1.1.1.3 keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=https://www.360docs.net/doc/6a11842139.html," -keystore server.keystore -storepass 12345678 导出证书 1.1.1.4 keytool -export -alias tomcatsso -file tomcatsso.crt -keystore server.keystore -storepass 12345678 加入JAVA信任证书库 1.1.1.5 keytool -import -alias tomcatsso -file tomcatsso.crt -keystore ../jre/lib/security/cacerts -storepass changeit 说明:在生成key的过程,"cn=https://www.360docs.net/doc/6a11842139.html," 中的https://www.360docs.net/doc/6a11842139.html,为Server端的域名(必填)。 1.2.1TOMCAT 配置SSL支持

基于CAS模式的单点登录系统设计与分析

Computer Science and Application 计算机科学与应用, 2019, 9(7), 1434-1440 Published Online July 2019 in Hans. https://www.360docs.net/doc/6a11842139.html,/journal/csa https://https://www.360docs.net/doc/6a11842139.html,/10.12677/csa.2019.97161 Design and Analysis of Single Sign on System Based on CAS Mode Xiaowei Xu, Jinlei Wang, Wenfei Jiang, Fengjuan Cui North China Sea Data and Information Service, SOA, Qingdao Shandong Received: Jul. 9th, 2019; accepted: Jul. 22nd, 2019; published: Jul. 29th, 2019 Abstract In order to solve the problem of the integration of the existing business application system of NCS, this paper makes a deep research on the principle of CAS integrated authentication, and designs a single sign on system based on CAS mode. Based on the actual situation of various software systems of NCS, this paper analyzes the problems faced by various systems to achieve single sign-on, propos-es different solutions to these problems, and provides technical route for the integration of business application systems of NCS, so as to realize the construction of single sign-on system of NCS. Keywords CAS Authentication, SSO, System Integration 基于CAS模式的单点登录系统设计与分析 徐晓玮,王金磊,姜雯斐,崔凤娟 国家海洋局北海信息中心,山东青岛 收稿日期:2019年7月9日;录用日期:2019年7月22日;发布日期:2019年7月29日 摘要 针对自然资源部北海局现有业务应用系统整合问题,对CAS集成认证原理进行深入研究,设计搭建了基于CAS模式的单点登录系统。结合北海局各类软件系统的实际情况,分析各类系统实现单点登录所面临的问题,针对这些问题提出不同的解决方案,为北海局业务应用系统的整合集成提供技术路线,以实现北海局单点登录系统的建设。

统一身份认证-CAS配置实现

一、背景描述 随着信息化的迅猛发展,政府、企业、机构等不断增加基于 Internet/lntranet的业务系统,如各类网上申报系统,网上审批系统,OA系统等。系统的业务性质,一般都要求实现用户管理、身份认证、授权等必不可少的安全措施,而新系统的涌现,在与已有系统的集成或融合上,特别是针对相同的用户群,会带来以下的问题: 1、每个系统都开发各自的身份认证系统,这将造成资源的浪费,消耗开发 成本,并延缓开发进度; 2、多个身份认证系统会增加系统的管理工作成本; 3、用户需要记忆多个帐户和口令,使用极为不便,同时由于用户口令遗忘 而导致的支持费用不断上涨; 4、无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不 同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化; 5、无法统一分析用户的应用行为 因此,对于拥有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少信息化系统的成本。单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现“一点登录、多点漫游、即插即用、应用无关”的目标,方便用户使用。 二、CAS简介 CAS( Ce ntral Authe nticati on Service ),是耶鲁大学开发的单点登录系 统(SSO single sign-on ),应用广泛,具有独立于平台的,易于理解,支持代理功能。CAS S统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应用。Spring Framework的Acegi安全系统支持CAS并提供了易于使用的方案。Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi 安全系统能够轻松地适

CAS单点登录集成文档

一、介绍 CAS单点登录为业务系统提供统一的单点登录服务。业务系统不需要开发自己的登录界面,系统使用者也避免了在多个业务系统间重复输入密码,改善了用户体验,同时密码实现集中维护,提高了系统的安全性。 单点登录演示地址:http://172.16.10.40:1433/cas/login(社管平台测试环境)业务系统可以使用这个地址进行开发测试。 二、下载 CAS为J2EE B/S应用提供了应用集成API,可以直接调用实现单点登录的集成。:cas-client.jar 文件下载后复制到业务系统的WEB-INF/lib目录。 三、配置 在web.xml中配置认证过滤器(实现单点登录用户认证)和会话监听器(实现单点登录的注销),例如: com.iflytek.cas.listener.LogoutSessionListener casFilter com.iflytek.cas.filter.TicketValidationFilter appUrl casLoginUrl http://172.16.10.40:1433/cas/login ticketValidateUrl http://172.16.10.40:1433/cas/validate casFilter /* 过滤器参数说明: 1、appUrl:Client会根据浏览器请求自动判断这个地址,所以一般情况下是不需要设置的。但是在反向代理环境中,CAS Client会得到代理服务器的地址,所以必须手工指定这个地址。

SSO之CAS单点登录详细搭建

SSO之CAS单点登录详细搭建: 环境说明: 同一个机器上环境如下: 操作系统:windows7 64位 JDK版本:1.7.0_80 web容器版本:apache-tomcat-7.0.70 64位 服务端:cas-3.5.2.1.zip 服务端现在地址:https://https://www.360docs.net/doc/6a11842139.html,/apereo/cas/archive/v4.2.3.zip 客户端:cas-client-3.3.3-release.zip 客户端下载地址:https://www.360docs.net/doc/6a11842139.html,/cas-clients/ eclipse版本:eclipse-jee-luna-SR2-win32-x86_64.zip 1、将cas-3.5.2.1 cas-client-3.3.3 标准maven工程导入eclipse 打包编译; 2、修改本机C:\Windows\System32\drivers\etc\hosts (CAS单点登录系统是基于JAVA安全证书的https 访问,要使用CAS单点登录必须要配置域名, cas是不能通过ip访问的.) 附件-->记事本管理员权限编辑hosts文件,加入如下三行代码后保存。 127.0.0.1 https://www.360docs.net/doc/6a11842139.html, 127.0.0.1 https://www.360docs.net/doc/6a11842139.html, 127.0.0.1 https://www.360docs.net/doc/6a11842139.html, 解释: https://www.360docs.net/doc/6a11842139.html, =>> 对应部署cas server的tomcat,这个虚拟域名还用于服务端证书生成 https://www.360docs.net/doc/6a11842139.html, =>> 对应部署client1客户端应用的tomcat https://www.360docs.net/doc/6a11842139.html, =>> 对应部署client2客户端应用的tomcat 3、安全证书配置 3.1、管理员模式打开cmd命令窗口,生成证书,在cmd窗口输入以下命令: C:\Users\Administrator>keytool -genkey -alias ssoflyer -keyalg RSA -keysize 1024 -keypass flyer2016 -validity 365 -keystore D:\app\flyer.keystore -storepass flyer2016 说明:-alias自定义的别名; -keypass指定证书密钥库的密码; -storepass和前面keypass密码相同,否则下面tomcat配置https会访问失败; -keystore指定证书的位置,例如:D:\app\目录,密钥库名称可以自定义,例如:flyer.keystore 特别注意:您的名字与姓氏是什么?该项一定要使用网站的域名,例如: https://www.360docs.net/doc/6a11842139.html, ,Cas Client使用httpclient访问cas server的时候,会严格的检查证书。 示例如下: C:\Users\Administrator>keytool -genkey -alias ssoflyer -keyalg RSA -keysize 1024 -keypass

CAS单点登录

CAS基本原理与配置 1

版本1.0 日期:2015年11月20日2

目录 1基本原理 (4) 1.1概念简介 (4) 1.2CAS基本原理 (5) 2配置说明 (8) 2.1配置JDK证书 (8) 2.2配置CAS服务器 (10) 2.3配置CAS客户端 (11) 2.4定制化说明 (17) 2.4.1 页面定制化 (17) 2.4.2 数据库定制化 (18) 2.4.3 增加图片验证和短信验证 (20) 2.4.4 增加自定义登录验证 (26) 3

1基本原理 1.1概念简介 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS ( Central Authentication Service )是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。CAS 开始于 2001 年,并在 2004 年 12 月正式成为 JA-SIG 的一个项目。 CAS主要特性: 1、开源的、多协议的 SSO 解决方案; Protocols : Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等; 2、支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates 等; 3、安全策略:使用票据( Ticket )来实现支持的认证协议; 4、支持授权:可以决定哪些服务可以请求和验证服务票据( Service Ticket ); 5、提供高可用性:通过把认证过的状态数据存储在 TicketRegistry 组件中,这些组件有很多支持分布式环境的实现,如: BerkleyDB 、 Default 、 EhcacheTicketRegistry 、 JDBCTicketRegistry 、 JBOSS TreeCache 、 JpaTicketRegistry 、 MemcacheTicketRegistry 等; 6、支持多种客户端: Java 、 .Net 、 PHP 、 Perl 、 Apache, uPortal 等; 4

CAS单点登陆配置

CAS服务端配置 1.准备环境 JDK1.6 apache-tomcat-6.0.14 cas-server-3.4.2 2.配置server 将cas-server war文件复制到webapps下,启动tomcat,以相同用户名或密登录成功。3.配置数据库访问方式 复制modules下面所有jar文件到cas-server的Web-inf/lib下,并复制class12.jar(oracle 数据库驱动)。 修改配置数据源,在deployerConfigContext.xml中添加数据源。 oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@localhost:1521:orcl aip aip 修改登录验证方法,在deployerConfigContext.xml中注释原验证方式,改为数据库验证。重新启动,通过数据库验证用户成功. 三种验证方法: 相同用户名或密码 用select语句验证 指定表或字段

CAS实现单点登录(SSO)经典完整教程

CAS实现单点登录(SSO)经典完整教程 一、简介 1、cas是有耶鲁大学研发的单点登录服务器 2、本教材所用环境 ?Tomcat7.2 ?JDK6 ?CAS Service 版本 cas-server-3.4.8-release ?CAS Client版 本 cas-client-3.2.1-release 二、生成证书 证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。 中文官方网站:https://www.360docs.net/doc/6a11842139.html,/cn/ 1、用JDK自带的keytool生成证书 [plain]view plaincopy 1.命令:keytool -genkey -alias smalllove -keyalg RSA -keystore D:/keys/smallkey 此命令是生成一个证书,其中smalllove 是证书别名 此命令的执行如图所示:

其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,注意不要写IP。 2、导出证书 [plain]view plaincopy 1.命令: C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey 如图: 密码为上步设置的密码。 3、把证书导入到客户端JDK中。

相关主题
相关文档
最新文档