CAS 入门及精通
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
使用 QueryDatabaseAuthenticationHandler
12
添加 passwordEncoder
另外,由于存放在数据库中的密码通常是加密过的, 另外,由于存放在数据库中的密码通常是加密过的, 所以 AuthenticationHandler 在匹配时需要知道使 用的加密方法, 用的加密方法,在 deployerConfigContext.xml 文 件中我们可以为具体的 AuthenticationHandler 类 property,指定加密器类, 配置一个 property,指定加密器类,比如对于 QueryDatabaseAuthenticationHandler: :
13
部署依赖包
将 cas-server-support-jdbc-3.1.1.jar 拷贝到 %CATALINA_HOME%/webapps/cas/ WEB-INF/lib 目录。 目录。 数据库驱动 其他依赖包如: 其他依赖包如:commons-collections-3.2.jar, commons-dbcp-1.2.1.jar, commons-pool-1.3.jar
CAS Seminar
CAS总括 总括
CAS 是 Yale 大学发起的一个开源项目,旨在为 大学发起的一个开源项目, Web 应用系统提供一种可靠的单点登录方法,CAS 应用系统提供一种可靠的单点登录方法, 的一个项目。 在 2004 年 12 月正式成为 JA-SIG 的一个项目。 CAS 具有以下特点: 具有以下特点: 1、开源的企业级单点登录解决方案。 、开源的企业级单点登录解决方案。 2、CAS Server 为需要独立部署的 Web 应用。 、 应用。 3、CAS Client 支持非常多的客户端 这里指单点登 、 支持非常多的客户端(这里指单点登 应用), 录系统中的各个 Web 应用 ,包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
16
配置 CAS Filter
将 cas-client-java-2.1.1.zip 改名为 cas-client-java2.1.1.jar 并拷贝到 casTest1/WEB-INF/lib目录下, 目录下, 目录下 文件, 修改 web.xml 文件,添加 CAS Filter。 。
17
CASFilter 必需的参数
9
配置 DataStore
打开文件 %CATALINA_HOME%/webapps/cas/WEBINF/deployerConfigContext.xml,添加一个新的 , bean 标签,对于 SQL SERVER,内容如清单 4 所 标签, , (跟spring配置一样 配置一样): 示(跟spring配置一样):
百度文库
18
CASFilter 可选参数
19
传递登录用户名
CAS 在登录成功过后,会给浏览器回传 Cookie,设 在登录成功过后, , 置新的到的 Service Ticket。但客户端应用拥有各自 。 的 Session,我们要怎么在各个应用中获取当前登录 , 用户的用户名呢? 用户的用户名呢?CAS Client 的 Filter 已经做好了 处理,在登录成功后, 处理,在登录成功后,就可以直接从 Session 的属 性中获取。 性中获取。
2
图 1. CAS 基础协议
3
部署 CAS Server
协议. 配置 Tomcat 使用 Https 协议 部署 CAS Server 扩展认证接口 JDBC 认证方法 部署依赖包
4
配置 Tomcat 使用 Https 协议
如果希望 Tomcat 支持 Https,主要的工作是配置 , SSL 协议,其配置过程和配置方法可以参考 Tomcat 协议, 的相关文档。不过在生成证书的过程中,会有需要用 的相关文档。不过在生成证书的过程中, 到主机名的地方, 地址, 到主机名的地方,CAS 建议不要使用 IP 地址,而要 使用机器名或域名。 使用机器名或域名。
20
集成spring security
主要为web.xml的配置 的配置 主要为
21
过滤器链
casAuthenticationFilter casValidationFilter
22
创新融通 蓬勃生机
中国领先的金融IT综合服务商 中国领先的金融IT综合服务商
股票代码 NYSE:LFT
www.longtop.com
14
部署客户端应用
单点登录的目的是为了让多个相关联的应用使用相同 的登录过程,通过本文的配置,实现单点登录, 的登录过程,通过本文的配置,实现单点登录,即只 需登录一次就可以访问这多个应用。 需登录一次就可以访问这多个应用。
15
与 CAS Server 建立信任关系
配置 Tomcat 的 SSL 协议 导入证书
10
配置 AuthenticationHandler
使用哪个 AuthenticationHandler,需要在 , deployerConfigContext.xml 中设置,默认情况下, 中设置,默认情况下, CAS 使用一个简单的 username=password 的 AuthenticationHandler,在文件中可以找到如下一 , 行:<bean class=“org.jasig.cas.authentication.handler.sup port.SimpleTestUsernamePassword AuthenticationHandler” />,我们可以将其注释掉, ,我们可以将其注释掉, 换成我们希望的一个 AuthenticationHandler,比如, ,比如, 使用QueryDatabaseAuthenticationHandler。 使用 。
7
扩展 AuthenticationHandler
CAS 提供扩展认证的核心是 AuthenticationHandler 接口 接口. 个需要实现的方法, 该接口定义了 2 个需要实现的方法,supports ()方 方 法用于检查所给的包含认证信息的Credentials 是否 法用于检查所给的包含认证信息的 受当前 AuthenticationHandler 支持;而 支持; authenticate() 方法则担当验证认证信息的任务,这 方法则担当验证认证信息的任务, 也是需要扩展的主要方法, 也是需要扩展的主要方法,根据情况与存储合法认证 信息的介质进行交互, 类型的值, 信息的介质进行交互,返回 boolean 类型的值, true 表示验证通过,false 表示验证失败。 表示验证通过, 表示验证失败。
谢 谢!
5
部署 CAS Server
CAS Server 是一个 Web 应用包,将前面下载的 应用包, cas-server-3.1.1-release.zip 解开,把其中的 cas解开, server-webapp-3.1.1.war 拷贝到 tomcat的 的 webapps 目录,并更名为 cas.war。由于前面已配 目录, 。 协议, tomcat, 置好 tomcat 的 https 协议,可以重新启动 tomcat, 然后访问: 然后访问:https://localhost:8443/cas ,如果能出 登录页面, 现正常的 CAS 登录页面,则说明 CAS Server 已经 部署成功。 部署成功。
8
JDBC 认证方法
JDBC 认证方法支持多种数据库,DB2, Oracle, 认证方法支持多种数据库, MySql, Microsoft SQL Server 等均可,这里以 等均可, DB2 作为例子介绍。并且假设 作为例子介绍。并且假设DB2数据库名: 数据库名: 数据库名 CASTest,数据库登录用户名: db2user,数据库 ,数据库登录用户名: , 登录密码: db2password,用户信息表为: 登录密码: db2password,用户信息表为: userTable,该表包含用户名和密码的两个数据项分 , 别为 userName 和 password。 。 1. 配置 DataStore 2. 配置 AuthenticationHandler
6
扩展认证接口
CAS Server 负责完成对用户的认证工作,它会处理 负责完成对用户的认证工作, 信息,用户名/密码 登录时的用户凭证 (Credentials) 信息,用户名 密码 对是最常见的凭证信息。 对是最常见的凭证信息。CAS Server 可能需要到数 据库检索一条用户帐号信息, 据库检索一条用户帐号信息,也可能在 XML 文件中 检索用户名/密码 密码, 获取等, 检索用户名/密码,还可能通过 LDAP Server 获取等, 在这种情况下, 在这种情况下,CAS 提供了一种灵活但统一的接口 和实现分离的方式, 和实现分离的方式,实际使用中 CAS 采用哪种方式 的基本协议分离开的, 认证是与 CAS 的基本协议分离开的,用户可以根据 认证的接口去定制和扩展。 认证的接口去定制和扩展。 扩展 AuthenticationHandler
使用 QueryDatabaseAuthenticationHandler
12
添加 passwordEncoder
另外,由于存放在数据库中的密码通常是加密过的, 另外,由于存放在数据库中的密码通常是加密过的, 所以 AuthenticationHandler 在匹配时需要知道使 用的加密方法, 用的加密方法,在 deployerConfigContext.xml 文 件中我们可以为具体的 AuthenticationHandler 类 property,指定加密器类, 配置一个 property,指定加密器类,比如对于 QueryDatabaseAuthenticationHandler: :
13
部署依赖包
将 cas-server-support-jdbc-3.1.1.jar 拷贝到 %CATALINA_HOME%/webapps/cas/ WEB-INF/lib 目录。 目录。 数据库驱动 其他依赖包如: 其他依赖包如:commons-collections-3.2.jar, commons-dbcp-1.2.1.jar, commons-pool-1.3.jar
CAS Seminar
CAS总括 总括
CAS 是 Yale 大学发起的一个开源项目,旨在为 大学发起的一个开源项目, Web 应用系统提供一种可靠的单点登录方法,CAS 应用系统提供一种可靠的单点登录方法, 的一个项目。 在 2004 年 12 月正式成为 JA-SIG 的一个项目。 CAS 具有以下特点: 具有以下特点: 1、开源的企业级单点登录解决方案。 、开源的企业级单点登录解决方案。 2、CAS Server 为需要独立部署的 Web 应用。 、 应用。 3、CAS Client 支持非常多的客户端 这里指单点登 、 支持非常多的客户端(这里指单点登 应用), 录系统中的各个 Web 应用 ,包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
16
配置 CAS Filter
将 cas-client-java-2.1.1.zip 改名为 cas-client-java2.1.1.jar 并拷贝到 casTest1/WEB-INF/lib目录下, 目录下, 目录下 文件, 修改 web.xml 文件,添加 CAS Filter。 。
17
CASFilter 必需的参数
9
配置 DataStore
打开文件 %CATALINA_HOME%/webapps/cas/WEBINF/deployerConfigContext.xml,添加一个新的 , bean 标签,对于 SQL SERVER,内容如清单 4 所 标签, , (跟spring配置一样 配置一样): 示(跟spring配置一样):
百度文库
18
CASFilter 可选参数
19
传递登录用户名
CAS 在登录成功过后,会给浏览器回传 Cookie,设 在登录成功过后, , 置新的到的 Service Ticket。但客户端应用拥有各自 。 的 Session,我们要怎么在各个应用中获取当前登录 , 用户的用户名呢? 用户的用户名呢?CAS Client 的 Filter 已经做好了 处理,在登录成功后, 处理,在登录成功后,就可以直接从 Session 的属 性中获取。 性中获取。
2
图 1. CAS 基础协议
3
部署 CAS Server
协议. 配置 Tomcat 使用 Https 协议 部署 CAS Server 扩展认证接口 JDBC 认证方法 部署依赖包
4
配置 Tomcat 使用 Https 协议
如果希望 Tomcat 支持 Https,主要的工作是配置 , SSL 协议,其配置过程和配置方法可以参考 Tomcat 协议, 的相关文档。不过在生成证书的过程中,会有需要用 的相关文档。不过在生成证书的过程中, 到主机名的地方, 地址, 到主机名的地方,CAS 建议不要使用 IP 地址,而要 使用机器名或域名。 使用机器名或域名。
20
集成spring security
主要为web.xml的配置 的配置 主要为
21
过滤器链
casAuthenticationFilter casValidationFilter
22
创新融通 蓬勃生机
中国领先的金融IT综合服务商 中国领先的金融IT综合服务商
股票代码 NYSE:LFT
www.longtop.com
14
部署客户端应用
单点登录的目的是为了让多个相关联的应用使用相同 的登录过程,通过本文的配置,实现单点登录, 的登录过程,通过本文的配置,实现单点登录,即只 需登录一次就可以访问这多个应用。 需登录一次就可以访问这多个应用。
15
与 CAS Server 建立信任关系
配置 Tomcat 的 SSL 协议 导入证书
10
配置 AuthenticationHandler
使用哪个 AuthenticationHandler,需要在 , deployerConfigContext.xml 中设置,默认情况下, 中设置,默认情况下, CAS 使用一个简单的 username=password 的 AuthenticationHandler,在文件中可以找到如下一 , 行:<bean class=“org.jasig.cas.authentication.handler.sup port.SimpleTestUsernamePassword AuthenticationHandler” />,我们可以将其注释掉, ,我们可以将其注释掉, 换成我们希望的一个 AuthenticationHandler,比如, ,比如, 使用QueryDatabaseAuthenticationHandler。 使用 。
7
扩展 AuthenticationHandler
CAS 提供扩展认证的核心是 AuthenticationHandler 接口 接口. 个需要实现的方法, 该接口定义了 2 个需要实现的方法,supports ()方 方 法用于检查所给的包含认证信息的Credentials 是否 法用于检查所给的包含认证信息的 受当前 AuthenticationHandler 支持;而 支持; authenticate() 方法则担当验证认证信息的任务,这 方法则担当验证认证信息的任务, 也是需要扩展的主要方法, 也是需要扩展的主要方法,根据情况与存储合法认证 信息的介质进行交互, 类型的值, 信息的介质进行交互,返回 boolean 类型的值, true 表示验证通过,false 表示验证失败。 表示验证通过, 表示验证失败。
谢 谢!
5
部署 CAS Server
CAS Server 是一个 Web 应用包,将前面下载的 应用包, cas-server-3.1.1-release.zip 解开,把其中的 cas解开, server-webapp-3.1.1.war 拷贝到 tomcat的 的 webapps 目录,并更名为 cas.war。由于前面已配 目录, 。 协议, tomcat, 置好 tomcat 的 https 协议,可以重新启动 tomcat, 然后访问: 然后访问:https://localhost:8443/cas ,如果能出 登录页面, 现正常的 CAS 登录页面,则说明 CAS Server 已经 部署成功。 部署成功。
8
JDBC 认证方法
JDBC 认证方法支持多种数据库,DB2, Oracle, 认证方法支持多种数据库, MySql, Microsoft SQL Server 等均可,这里以 等均可, DB2 作为例子介绍。并且假设 作为例子介绍。并且假设DB2数据库名: 数据库名: 数据库名 CASTest,数据库登录用户名: db2user,数据库 ,数据库登录用户名: , 登录密码: db2password,用户信息表为: 登录密码: db2password,用户信息表为: userTable,该表包含用户名和密码的两个数据项分 , 别为 userName 和 password。 。 1. 配置 DataStore 2. 配置 AuthenticationHandler
6
扩展认证接口
CAS Server 负责完成对用户的认证工作,它会处理 负责完成对用户的认证工作, 信息,用户名/密码 登录时的用户凭证 (Credentials) 信息,用户名 密码 对是最常见的凭证信息。 对是最常见的凭证信息。CAS Server 可能需要到数 据库检索一条用户帐号信息, 据库检索一条用户帐号信息,也可能在 XML 文件中 检索用户名/密码 密码, 获取等, 检索用户名/密码,还可能通过 LDAP Server 获取等, 在这种情况下, 在这种情况下,CAS 提供了一种灵活但统一的接口 和实现分离的方式, 和实现分离的方式,实际使用中 CAS 采用哪种方式 的基本协议分离开的, 认证是与 CAS 的基本协议分离开的,用户可以根据 认证的接口去定制和扩展。 认证的接口去定制和扩展。 扩展 AuthenticationHandler