- 浏览: 71494 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
wangyudong:
由CXF实现的微服务需要有比较好的工具去测试RESTful A ...
cxf动态调用webservice设置超时,测试线程安全 -
jianhao84:
在myeclipse中测试程序正常,发布之后客户端就很慢很慢, ...
cxf动态调用webservice设置超时,测试线程安全 -
ruijf:
Zabbix监控java应用的原理就是利用了JMX功能。JMX ...
使用Zabbix的JMX功能监控应用 -
iCaca:
兄弟,能否介绍下监控的原理,特别是zabbix_server, ...
使用Zabbix的JMX功能监控应用
公司准备上SSO,选用CAS框架。本人学习了N久,总算配成功了。下面记录下涉及的各个节点。
1.CAS的名词解释及原理
2.HTTPS的配置
3.CAS Proxy的配置
4.测试
一、CAS名词解释及原理
这些个东东比较拗口,很难解释。我是看了好久才勉强理解。这方面的知识网络上有很多,介绍几个大牛的博客给大家看下吧。
名词解释:http://blog.csdn.net/tienway/article/details/5464516
原理:http://blog.csdn.net/emon123/article/details/6285549
http://www.blogjava.net/security/archive/2006/04/26/SSO_CASProxy.html
官方wiki:https://wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1
二、HTTPS的配置
1.测试环境
cas-client-3.2.0
cas-server-3.4.10
cas server: https://sso.test.com
backend service: http://backend.test.com
proxy service: http://proxy.test.com
host:
172.16.11.71 sso.test.com
172.16.11.72 backend.test.com
172.16.11.73 proxy.test.com
http端口默认80
https端口默认443
2.证书的生成
CAS Server和Proxy Service多需要使用HTTPS协议,因此需要生成2个证书。使用java自带的命令生成
cas server: keytool -genkey -alias cas_server -keystore cas_server.keystore -keyalg RSA -validity 3666
proxy service:keytool -genkey -alias proxy_service -keystore proxy_service.keystore -keyalg RSA -validity 3666
生成证书时的域名(第一个输入项)要和测试的域名匹配。比如cas server要输入sso.test.com, proxy service要输入proxy.test.com
3.tomcat配置
配置conf/server.xml
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" URIEncoding="utf-8" keystoreFile="conf/cas_server.keystore" keystorePass="changeit" />
配置好后重启tomcat,打开浏览器验证下。如果出现红框,点击信任。如果能进入页面就OK了。因为这些证书是不受浏览器信任的,每次会提示安全信息。可以设置下将证书导出到信任列表里,就不会每次提醒了。IE的选择安装证书一路OK就行了。
4.证书信任
CAS代理验证模式下cas server和proxy service会后台互相调用https接口。因此需要配置jvm信任彼此的证书。不然
会报PKIX啥的异常.
首先在sso.test.com将cas server的证书导出
keytool -export -alias cas_server -keystore cas_server.keystore -file cas_server.crt
然后将cas_server.crt拷贝到proxy.test.com机器上导入jvm
keytool -import -alias cas_server -file cas_server .crt -keystore $JAVA_HOME/jre/lib/security/cacerts
同理 再将proxy.test.com上proxy_service的证书导入sso.test.com的jvm
现在先期的HTTPS配置工作完成了。
三、CAS Proxy配置
proxy service配置:
<filter> <filter-name>CAS Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <filter> <filter-name>CAS Authentication Filter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter </filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>https://sso.test.com/login</param-value> </init-param> <init-param> <param-name>renew</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>gateway</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://proxy.test.com</param-value> </init-param> </filter> <filter> <filter-name>CAS Validation Filter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>https://sso.test.com/</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://proxy.test.com</param-value> </init-param> <init-param> <param-name>exceptionOnValidationFailure</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>redirectAfterValidation</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>acceptAnyProxy</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>useSession</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>proxyCallbackUrl</param-name> <param-value>https://proxy.test.com/proxyCallback</param-value> </init-param> <init-param> <param-name>proxyReceptorUrl</param-name> <param-value>/proxyCallback</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Validation Filter</filter-name> <url-pattern>/proxyCallback</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Authentication Filter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Validation Filter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
说明:
1.具体参数意义参见http://blog.csdn.net/tienway/article/details/5464516
2./proxyCallback这个接口原先yelu的jar包是单独的,cas_client_core是合并在
Cas20ProxyReceivingTicketValidationFilter类中。这个差别让我郁闷了很久。
3.过滤器的顺序不能乱了,前置的/proxyCallback官方没有这样的配置,这个得感谢(emon123)
http://blog.csdn.net/emon123/article/details/6285549
4.backend service配置同理
发表评论
-
使用solr4.6,Tomcat部署SolrCloud
2014-01-21 16:54 2510使用solr4.6在Tomcat中部署SolrCloud与前 ... -
hadoop 安装
2013-04-19 13:27 9101.centos6 中的portmap 改成了rpcbin ... -
CAS代理服务配置(二)
2012-01-05 21:03 1469四、测试页面 在proxy.test.com下部署个inde ... -
构建KVM虚拟机NAT网络
2011-09-26 15:03 4924现在的虚拟化架构越来越普遍了。最近摸索了下centos下如何构 ... -
Oracle RUEI安装
2011-08-23 10:37 2700最近在寻找各种web服务的监控方案,发现有用前端js脚 ... -
linux环境设置
2011-06-22 10:30 1080locale-gen zh_CN.UTF-8 locale- ... -
Nginx学习之一—反向代理
2011-05-12 11:40 1149一、代理分类 代理一般分为正向代理和反向代理。正向代理简单点 ... -
Java内存管理和GC学习
2011-05-04 16:23 3272内存划分 1。JAVA内存主要划分为方法栈、方法区、堆。 ... -
使用Zabbix的JMX功能监控应用
2011-05-04 10:33 5123Zabbix是一款功能强大的开源监控平台,目前最高版本1.9. ... -
远程调用JMX开放的方法
2011-04-29 16:26 3146JMX的功能主要通过远程调用RMI来实现。本文以获取c3po连 ... -
spring 任务调度框架Quartz
2011-04-29 11:39 1361Spring对任务调度框架Quartz做了很好的封装,开发人员 ... -
mvn 命令
2009-11-21 22:59 954命令: 生成普通工程: mvn archetype:creat ... -
taglib配置
2009-12-13 21:56 1011tld文件放入META-INF中取名taglib.tld w ... -
Hibernate3.x openSession()与getCurrentSession()得到的连接的区别
2010-02-03 16:36 781测试1:openSession在不开启事务的情况下执行操作 ... -
cookie的相关
2010-10-21 15:56 6521.cookie并不是http协议的一部分,是浏览器与服务器交 ... -
Nginx rewrite last 和break区别
2010-10-26 11:04 961摘自 http://www.sudone.com/nginx/ ... -
spring配置文件的小技巧
2010-12-14 17:32 8651.如何在spring的配置文件中直接配置一个MAP? ... -
tomcat使用log4j分割日志的配置方法
2011-03-07 11:30 1536tomcat默认使用java.util.logging记录日志 ... -
tomcat服务器重启脚本
2011-03-08 10:35 752#!/bin/bash #得到命令变量 PRG=" ... -
基于JMX管理站点资源
2011-04-22 18:59 1016一.How 1.创建配置文件的类,然后使用spring配 ...
相关推荐
在这个"cas代理模式代码示例"中,我们关注的是如何在CAS环境中实现这一模式。 1、**实现代理模式的相关配置**: 在Java中,我们可以使用静态代理或者动态代理(如Java的`java.lang.reflect.Proxy`类)来实现。静态...
CAS代理模式是CAS协议中的一个重要特性,它允许授权的用户代表其他用户执行操作,例如在教育和研究环境中,教师可以访问学生的信息或提交作业代为批改。 在Yale CAS实现中,代理模式主要涉及以下几个核心概念: 1....
5. **CAS代理模式**:CAS支持代理模式,允许一个服务代表用户向另一个服务请求认证,这在多服务环境中非常有用。 6. **源码分析**:提供的源码示例可以帮助理解CAS的内部工作机制,包括登录、验证、服务票证的生成...
标题 "cas 系统实例 服务端配置(一)" 提到的是 CAS(Central Authentication Service)系统的一个服务端配置教程。CAS 是一个开源的身份验证框架,主要用于实现单一登录(Single Sign-On, SSO)。在本教程中,我们...
1. **CAS 服务器配置**:需要在 CAS 服务器端启用代理认证的相关设置。 2. **客户端配置**:客户端应用需要正确配置以支持代理认证。 3. **HTTPS 配置**:确保所有涉及 CAS-Proxy 认证的通信均通过 HTTPS 进行。 4. ...
这通常涉及下载CAS服务器的软件包,配置服务器的主配置文件(如`cas.properties`),以及设置服务器的Keystore来生成SSL证书,确保通信的安全性。 2. **选择客户端库**:CAS提供了多种客户端库,例如Java、.NET、...
标题中的“简单配置基于CAS的单点登录”指的是在IT领域中实现的一种身份验证方法,称为Central Authentication Service(中央认证服务)的单点登录(Single Sign-On, SSO)。CAS是一种开源项目,它允许用户通过单一...
在ASP.NET环境中配置CAS客户端可以帮助开发者构建一个允许用户通过单一登录凭证访问多个应用系统的平台。本篇文章将深入探讨如何在ASP.NET应用程序中配置CAS客户端,并进行验证流程。 首先,理解SSO的基本概念是至...
CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源身份验证框架,主要目的是提供单一登录(Single Sign-On,SSO)功能。在这个“cas-demo.rar”压缩包中,包含了一个.NET实现的CAS客户端...
1. CAS协议理解:首先,你需要熟悉CAS的工作流程,包括票证(Ticket)的概念,如服务票证(Service Ticket)和代理票证(Proxy Ticket),以及它们在认证过程中的作用。 2. CAS服务器配置:部署和配置CAS服务器,...
CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源身份验证框架,主要目的是提供单一登录(Single Sign-On,SSO)功能。它允许用户通过一个认证界面登录,然后在多个应用系统之间无缝地切换...
配置包括设置CAS服务器地址、服务URL、票证验证URL等。同时,需要处理CAS过滤器,确保用户请求被正确地重定向到CAS服务器进行身份验证。 对于PHP客户端,可以使用phpCAS库。同样需要配置CAS服务器URL、服务URL等...
- 在配置文件中设置CAS服务器的URL、服务ID(对应你的应用)和其他相关参数。 - 定义一个过滤器,通常称为`CasAuthenticationFilter`,该过滤器负责拦截请求,引导用户到CAS服务器进行身份验证,并处理验证结果。 ...
3. **初始化客户端**:在应用启动时,初始化CAS客户端,设置服务器地址和服务URL等参数。 4. **处理重定向**:当用户尝试访问受保护的资源时,客户端会检测到缺失的CAS票证并自动重定向到CAS服务器的登录页面。 5. *...
CAS(Central Authentication Service,中央认证服务)是Java社区开发的一个开源SSO解决方案,它为Web应用提供了统一的认证和授权服务。 CAS的核心概念包括以下几个部分: 1. **CAS服务器**:这是SSO的核心,负责...
本系统的搭建充分利用了Django强大的开发能力、Nginx优秀的反向代理性能、Elasticsearch高效的搜索服务、CAS的安全认证机制以及MySQL稳定的数据存储功能。通过精心设计和配置,实现了高度集成化的分布式应用环境。这...
4. 在重定向过程中,CAS Server还会设置一个Ticket Granting Cookie (TGC)。TGC用于后续的无感知登录。 5. CAS Client接收到ST后,会与CAS Server进行验证,以确认ST的有效性。 6. 验证通过后,用户即可访问受保护的...
- CAS服务器的部署涉及配置XML文件,如`cas-server-config.xml`,设置服务器地址、数据库连接、票证过期策略等。 - 应用系统需要集成CAS客户端库,配置服务URL和CAS服务器地址,以便进行票据交换和验证。 **安全性...
- **代理支持**:CAS除了基本的单点登录功能外,还支持代理机制,即允许一个服务代表另一个服务获取票证。这种功能非常适合需要跨服务共享身份验证信息的场景。 - **多因素认证**:随着安全性的提升,CAS也支持多...