CAS
Defination:
Open source project for SSO which contains Client(Including : Java, .Net, PHP, Perl, Apache, uPortal, Ruby) & Server was create by Yale.
Principle:
Cas client binded with app1,when u login in the app1,cas client will check your authority( Service Ticket), It will redirect to the cas server in case your ticket is not authorized.
------------------------------------------------------------------------------------------------------------------
Setting up:
Configure tomcat SSL
The communication between Cas client and server is via SSL
a. Add this on the tomcat server.xml
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="your key dir" keystorePass="" />
b. Create your key
//create certificate keytool -genkey -alias aaa -keylag RSA -keystore d:/ccc {*after Enter you will input some info ,what's your name ? must be input your server hostname} //export certificate keytool -export -file d:/ddd.crt -alias aaa -keystore d:/ccc //import to JVM keytool -import -keystore "your tomcat jre/lib/security/cacerts" -file d:/ddd.crt -alias aaa *IF import to JVM this step is error: delete the cacerts and try again *make sure the JVM is your tomcat's JVM
c. Server
zip the cas-server.zip and put the .war into the wabapp folder.
d. Client
zip the cas-client.zip and put the .jar into your project .
Then add some filters
<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置--> <listener> <listener-class> org.jasig.cas.client.session.SingleSignOutHttpSessionListener </listener-class> </listener> <!-- 该过滤器用于实现单点登出功能,可选配置。 --> <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> <!-- 该过滤器负责用户的认证工作,必须启用它 --> <filter> <filter-name>CASFilter</filter-name> <filter-class> org.jasig.cas.client.authentication.AuthenticationFilter </filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value> https://isdaac.com:8443/cas/login </param-value> </init-param> <init-param> <!--这里的server是服务端的IP--> <param-name>serverName</param-name> <param-value>http://10.243.75.101:9090</param-value> </init-param> </filter> <filter-mapping> <filter-name>CASFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器负责对Ticket的校验工作,必须启用它 --> <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://isdaac.com:8443/cas</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://10.243.75.101:9090</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Validation Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器负责实现HttpServletRequest请求的包裹, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 --> <filter> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <filter-class> org.jasig.cas.client.util.HttpServletRequestWrapperFilter </filter-class> </filter> <filter-mapping> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 --> <filter> <filter-name>CAS Assertion Thread Local Filter</filter-name> <filter-class> org.jasig.cas.client.util.AssertionThreadLocalFilter </filter-class> </filter> <filter-mapping> <filter-name>CAS Assertion Thread Local Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 自动根据单点登录的结果设置本系统的用户信息 <filter> <display-name>AutoSetUserAdapterFilter</display-name> <filter-name>AutoSetUserAdapterFilter</filter-name> <filter-class> com.wsria.demo.filter.AutoSetUserAdapterFilter </filter-class> </filter> <filter-mapping> <filter-name>AutoSetUserAdapterFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>--> <!-- ======================== 单点登录结束 ======================== -->
e. LDAP
<property name="authenticationHandlers"> <list> <!-- | This is the authentication handler that authenticates services by means of callback via SSL, thereby validating | a server side SSL certificate. +--> <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> <!-- | This is the authentication handler declaration that every CAS deployer will need to change before deploying CAS | into production. The default SimpleTestUsernamePasswordAuthenticationHandler authenticates UsernamePasswordCredentials | where the username equals the password. You will need to replace this with an AuthenticationHandler that implements your | local authentication strategy. You might accomplish this by coding a new such handler and declaring | edu.someschool.its.cas.MySpecialHandler here, or you might use one of the handlers provided in the adaptors modules. <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" /> +--> <bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"> <property name="filter" value="sAMAccountName=%u" /> <property name="searchBase" value="ou=shanghai,dc=XXX,dc=com" /> <property name="contextSource" ref="contextSource" /> </bean> </list> </property> </bean> <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"> <property name="anonymousReadOnly" value="false" /> <property name="pooled" value="true" /> <property name="urls"> <list> <value>ldap://XXX.com:389/</value> <!-- asia <value>ldap://XXX.com:389/</value> --> </list> </property> <!-- 如果是老版本,这里应该用的是userName,而不是userDn --> <property name="userDn" value="CN=XXX,OU=IT,OU=Shanghai,DC=XXX,DC=com" /> <property name="password" value="XXX" /> <property name="baseEnvironmentProperties"> <map> <entry> <key><value>java.naming.security.authentication</value></key> <value>simple</value> </entry> </map> </property> </bean>
f. Get Value
AssertionImpl key = (AssertionImpl)session.getAttribute("_const_cas_assertion_"); String name = key.getPrincipal().getName();
相关推荐
CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决网络应用中的身份验证问题。本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置...
CAS(Central Authentication Service)是Java开发的一个开源身份验证框架,主要用于实现单点登录(Single Sign-On,SSO)。本教程将详细介绍如何搭建CAS服务,并将其与SQL Server数据库和Spring Security进行集成。...
3. **集成CAS客户端库**:在外部系统中,需要集成CAS客户端库,如Java CAS Client、Spring Security CAS等,它们负责处理与CAS服务器的交互,包括重定向用户到CAS登录页面、接收和验证服务票证。 4. **配置客户端...
CAS(Central Authentication Service)是Java开发的一个开源身份验证框架,主要功能是提供单点登录(Single Sign-On,SSO)服务。在企业环境中,尤其是在已部署了Active Directory(AD)域服务的情况下,将CAS与AD...
CAS(Central Authentication Service)是一种广泛使用的开放源代码单点登录(Single Sign-On,SSO)框架,它允许用户通过一个中央认证服务访问多个应用系统,而无需为每个系统单独进行登录。在实际的企业环境中,...
H3C CAS 3.0版 H3C CAS 3.0产品培训胶片 H3C CAS-云计算管理平台技术白皮书V2.0 H3C CAS-云计算管理平台 安装指导-5W101-整本手册 H3C CAS-维护手册V2.0 H3C CAS-工程开局指导手册V2.0 H3C CAS-Rest API H3C ...
CAS(Central Authentication Service)是一种基于Web的单一登录(Single Sign-On, SSO)协议,它允许用户通过一个认证过程访问多个应用系统,而无需为每个系统单独登录。CAS 4.1.7是该框架的一个特定版本,发布于...
CAS(Central Authentication Service)是一种广泛使用的开放源码身份验证框架,它允许用户通过单一登录(Single Sign-On,SSO)访问多个应用系统。在你提供的资料中,"Cas5.2.6(cas-overlay-template-5.2.6)服务端...
本文将围绕"iscas.rar_iscas_基准电路_逻辑综合"这一主题,深入探讨这些概念及其在实际应用中的重要性。 iscas基准电路是一套广泛使用的标准测试集,由国际固态电路会议(International Solid-State Circuits ...
【标题】"CAS修改登录页"是一个针对中央认证服务(Central Authentication Service,简称CAS)的定制化实践。在单点登录(Single Sign-On,SSO)系统中,CAS扮演着核心角色,它提供了统一的身份验证服务,使得用户只...
CAS(Central Authentication Service)是一种基于Web的单一登录(Single Sign-On, SSO)协议,用于在网络上验证用户身份。它允许用户通过一个认证过程访问多个应用系统,而无需为每个系统分别进行登录。在你的场景...
在IT行业中,Cas(Central Authentication Service)是一种广泛使用的开源身份验证和授权框架,它使得单点登录(Single Sign-On, SSO)变得简单。本文将详细介绍如何在IntelliJ IDEA(简称Idea)中导入和编译CAS项目...
本文将深入探讨如何利用Spring Boot、CAS 5.3、Shiro、Pac4J这四个强大的工具来构建一个高效且用户友好的REST接口,以获取CAS(Central Authentication Service)票据,避免用户被重定向到CAS服务器的登录页面。...
CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,简称SSO)系统,它允许用户通过一个认证入口访问多个应用系统,而无需在每个系统上分别进行登录。在这个压缩包中,...
CAS(Central Authentication Service)是一种基于Web的单一登录(Single Sign-On, SSO)协议,用于在多应用环境中统一用户认证。这个协议由耶鲁大学开发并开源,现在由Apereo基金会维护。标题提到的"cas-server-...
CAS(Central Authentication Service)是耶鲁大学开发的一种基于Web的单点登录(Single Sign-On,简称SSO)协议。在企业或机构的信息系统环境中,它允许用户通过一次登录即可访问多个应用系统,无需多次输入用户名...
CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,SSO)框架,由耶鲁大学开发并维护。它允许用户通过单一的登录验证来访问多个应用系统,从而简化了用户的登录过程,...
《H3C CAS七日通》是一份针对H3C云计算软件套件——H3C Cloud Automation System (简称H3C CAS) 的详尽学习资料,旨在帮助用户在一周内快速掌握该系统的使用和管理。这份资料包含了有声讲解版,以音频形式辅助理解,...
### CAS Restful接口调用详解 #### 一、CAS简介 CAS(Central Authentication Service)是一种开源的单点登录协议和服务实现。它旨在减轻单一Web应用的登录流程,并为多个服务提供一个集中式的认证机制。CAS支持...
3. 配置CAS Client,这可能涉及修改web.xml文件,引入CAS客户端库,并配置客户端的信任CAS Server的地址。 4. 可能需要修改CAS客户端的Java源代码,特别是对于证书验证的问题,可能需要重新编译并替换原有包。 5. ...