cas单点系统的部署
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.40mons-dbcp-all-1.3-r699049.jar5.mysql-connector-java-5.1.18-bin.jar6.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.war3.修改host文件(C:\Windows\System32\drivers\etc)添加127.0.0.1 注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到,可以用相应PC机的IP代替4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml)添加内容:<Host name="" appBase="cas"unpackWARs="true" autoDeploy="true"></Host>5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入:8080如果出现以下界面,则CAS服务端配置成功。
注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。
CAS示例环境部署及配置(完整版)
CAS示例环境部署及配置一、示例说明在本示例中将使用cas-server-3.5.0和cas-client-3.2.1搭建一个SSO测试环境,在同一台机器上安装3个tomcat,分别部署一个cas server和两个cas client,这三个应用使用不同的域名访问(通过配置hosts文件实现多个域名)。
配置完成之后,应达到如下效果:1、首先访问app1,此时需要跳转到cas登录页面,要求用户进行登录;2、输入正确的用户名和密码,登录成功之后自动跳转到app1,而且可以获取到用户的登录信息;3、在同一个浏览器中直接访问app2,此时不需要再次用户登录即可正常访问,而且可以获取到登录用户的信息;4、反复访问app1和app2,只要不关闭浏览器,就可以一直正常访问并且可以获取到用户信息;5、在浏览器地址栏输入CAS登出的路径(https://:8443/cas/logout),系统提示成功注销;6、此时无论访问app1还是app2,都会跳转到cas登录页面,要求用户重新登录。
二、部署文件清单三、准备部署环境本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),根据演示需求,我们需要准备三个不同的域名,分别对应cas server和两个cas客户端应用,用修改hosts 文件的方法添加域名最简单方便(这个非常重要),在文件c:\windows\system32\drivers\etc\hosts 文件中添加三条127.0.0.1 127.0.0.1 127.0.0.1 其中:对应部署cas server的tomcat,如果这个tomcat使用https 协议,则这个虚拟域名还用于证书生成;另外两个域名对应两个不同的客户端应用。
安装JDK,配置JAVA_HOME、PATH环境变量;在D盘根目录复制三个TOMCAT 文件夹,分别命名为tomcat-for-cas、tomcat-for-client-1、tomcat-for-client-2;这个详细过程就不再详细描述。
cas认证系统 使用方法 -回复
cas认证系统使用方法-回复CAS(Central Authentication Service)认证系统是一种常见的开源认证单点登录系统,广泛用于大型网络应用的用户认证和管理。
本文将详细介绍CAS认证系统的使用方法,并提供一步一步的指导。
第一步:环境准备在开始使用CAS认证系统之前,我们需要准备好运行该系统所需的环境。
首先,我们需要安装Java JDK(Java Development Kit)。
CAS认证系统是基于Java开发的,因此需要有Java环境的支持。
我们可以从Oracle 官方网站上下载适合自己操作系统的Java JDK,并按照其指引进行安装。
第二步:CAS服务器的部署和配置一旦我们准备好了Java环境,接下来我们需要部署和配置CAS服务器。
CAS服务器可以在各种平台上运行,例如Windows、Linux等。
在开始之前,我们需要下载最新版本的CAS服务器,可以从CAS官方网站上找到相关的下载链接。
将下载下来的CAS服务器解压缩到我们的目标目录中。
在解压缩完成后我们需要进入解压缩后的目录,并找到一个名为`cas.war`的文件。
将该文件拷贝到我们的Servlet容器(例如Tomcat)的webapps目录下。
接下来,我们需要进行CAS服务器的配置。
在CAS服务器的解压缩目录中,可以找到一个名为`cas.properties`的文件。
我们需要根据自己的需求修改该文件,例如更改CAS服务器的端口号、数据库连接信息等。
具体的配置项可以查询CAS的官方文档,以便根据实际需要进行配置。
完成上述步骤后,我们就可以启动CAS服务器了。
启动Tomcat服务器(或其他Servlet容器),CAS服务器将自动加载,并在日志中显示启动过程中的详细信息。
如果一切顺利,我们应该能够在浏览器中访问`第三步:应用程序的接入一旦我们成功部署和配置了CAS服务器,接下来我们需要将我们的应用程序接入CAS认证系统。
在开始之前,我们需要确保我们的应用程序已经部署在同一个服务器上,并且可以正常访问。
单点登录解决方案 cas
单点登录解决方案 CAS概述在现代的互联网应用中,用户通常需要使用多个应用来完成不同的任务。
这些应用通常都有自己的用户身份验证和会话管理方式,导致用户需要为每个应用分别进行登录和验证。
单点登录(Single Sign-On,简称 SSO)解决方案就是为了解决这个问题而被提出的。
本文将介绍一个常见的单点登录解决方案 - CAS(Central Authentication Service)。
CAS 是一种基于票据的 SSO 解决方案,它是一个开源的认证中心,旨在为多个独立的应用提供统一的认证服务。
通过 CAS,用户只需要在一个应用中登录一次,就可以在其他应用中无需再次输入凭证,实现无缝登录体验。
CAS 的工作原理CAS 的工作原理可以分为以下几个步骤:1.用户访问应用 A,并尚未登录。
2.应用 A 验证用户是否登录,发现用户未登录。
3.应用 A 重定向用户到 CAS 客户端,传递应用 A 的地址。
4.CAS 客户端将用户重定向到 CAS 服务器,并携带应用 A 的地址。
5.CAS 服务器要求用户登录,并在登录成功后,生成一个票据进行标识。
6.CAS 服务器将该票据返回给 CAS 客户端。
7.CAS 客户端将该票据回传给应用 A。
8.应用 A 将票据发送给 CAS 服务器验证。
9.CAS 服务器验证票据的有效性,并返回用户信息。
10.应用 A 根据用户信息判断是否登录成功,如果成功则创建会话。
这样,用户就可以在应用 A 中实现登录,并在其他接入 CAS 的应用中无需再次登录。
CAS 的优势和适用场景CAS 作为一种单点登录解决方案,在以下情况下具有明显的优势:1.需要实现统一的认证和授权管理:CAS 提供了一个中心化的身份认证和授权服务,可以方便地进行统一管理。
2.需要在多个应用之间实现无缝登录:用户只需要登录一次,就可以在其他接入 CAS 的应用中自动登录,提供了更好的用户体验。
3.需要提供单点注销功能:用户可以在一个应用中注销,然后所有其他应用都会被注销,增加了系统的安全性。
cas单点登录解决方案
cas单点登录解决方案
《CAS单点登录解决方案》
CAS(Central Authentication Service)是一种基于开放协议的
单点登录解决方案,它旨在解决企业系统中的用户身份验证和授权管理问题。
它的基本原理是用户只需使用一组凭证就可以访问多个不同的应用程序,而不需要再次登录。
这大大简化了用户体验,并提高了安全性。
CAS单点登录解决方案有以下几个主要特点和优势:
1. 集中管理用户身份信息:CAS通过集中管理用户身份信息,可以统一管理用户的账号和密码,减少了用户在不同系统中重复注册的繁琐过程。
2. 兼容多种应用环境:CAS可以与各种不同的应用程序和系
统集成,包括基于Web的应用程序、移动应用程序、桌面应
用程序等,保证了用户可以在不同的环境下实现单点登录。
3. 提高安全性:CAS通过统一的验证和授权流程,提高了系
统的安全性,防止了身份被盗用和信息泄露的风险。
4. 提升用户体验:CAS可以实现用户一次登录,多次使用的
功能,提高了用户的工作效率和体验。
5. 强大的扩展性:CAS提供了丰富的插件和扩展功能,可以
根据具体的业务需求进行定制,满足不同企业的特殊需求。
总的来说,CAS单点登录解决方案是一种成熟、安全、稳定的身份认证和授权管理系统,可以为企业提供高效、安全、方便的用户身份验证和授权管理服务。
在当前快速发展的互联网时代,对于跨系统、多渠道的企业来说,CAS单点登录解决方案无疑是一个理想的选择。
CAS单点登录服务器的部署以及使用
CAS单点登录服务器的部署以及使用一.准备CAS服务器端和客户端1.Windows下a)cas服务器端压缩包cas-server-3.4.12-release.zipb)cas客户端压缩包cas-client-3.2.1-release.zip官网有下载/2.linux下a)cas服务器端压缩包cas-server-3.4.12-release.tar.gzb)cas客户端压缩包cas-client-3.2.1-release.tar.gz官网有下载/二.准备架包Oracle数据库驱动架包ojdbc6.jar三.安装CAS1.重新安装一个服务器,如tomcat。
2.部署CAS项目a)解压缩cas-server-3.4.12-release.(tar.gz/zip),进入解压后的cas-server-3.4.12-release目录下的modules中,取出cas-server-webapp-3.4.12.war,放入新安装的tomcat目录下的webapp下,修改war包的名字为cas.war,启动tomcat,将cas.war解压到webapp下,然后关闭服务器3.CAS服务器端证书相关操作。
a)生成服务器端证书Linux下命令:keytool -genkey -alias mycas -keyalg RSA -keystore/home/XXX/cas/key/mycas.keystorewindows下命令:keytool -genkey -alias mycas -keyalg RSA -keystore D\cas\key\mycas.keystore 有效期默认是三个月,若需要修改,增加一个参数,-validity,单位:天b)导出证书Linux下命令:keytool -export -trustcacerts -file /home/XXX/cas/key/mycas.crt -alias mycas -keystore /home/XXX/cas/key/mycas.keystorec)导入证书到客户端JDKLinux下命令:keytool -import -trustcacerts -keystore$JAVA_HOME/jre/lib/security/cacerts -file/home/XXX/cas/key/mycas.crt -alias mycas -storepass changeitwindows下命令:keytool -import -trustcacerts-keystore %JAVA_HOME\jre\lib\security\cacerts -fileD:\cas\key\mycas.crt -alias mycas -storepass changeitd)如果生成失败,请删除证书,重新导入删除证书文件cas/key下的两个文件后执行将证书从jdk中移除,移除JDK中的证书命令Linux下命令:keytool -delete -alias mycas -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeitwindow下命令:--移除JDK中的证书keytool -delete -alias mycas -keystore %JAVA_HOME\jre\lib\security\cacerts-storepass changeite)生成jssecacerts文件下载InstallCert.java这个java源文件网址:/code/snippet_12_4092在命令行中编译,然后执行java文件javac InstallCert.javajava InstallCert localhost:8080将生成的jssecacerts文件复制到$JAVA_HOME\jre\lib\security 目录下f)开启服务器端Tomcat的SSLg)重启电脑登陆测试服务器端,地址为https://localhost:8845/cas,登录用户名密码相同h)查看证书keytool -list -keystore/home/ligang/jdk1.6.0_26/jre/lib/security/cacerts -storepasschangeit4.修改CAS服务器配置,使其可以与项目结合a)进入解压出来的cas目录的WEB-INF下,b)将cas-server-3.4.12-release\modules下的cas-server-support-jdbc-3.4.12.jar和ojdbc6.jar复制到WEB-INF\lib下c)使用编辑工具打开deployerConfigContext.xmld)有三种登录配置,默认是SimpleTestUsernamePasswordAuthenticationHandler,用户名密码相同即可,QueryDatabaseAuthenticationHandler采用在配置文件中指定SQL语句的方式,SearchModeSearchDatabaseAuthenticationHandler是可以在类中写方法的方式。
SSO之CAS单点登录详细搭建
SSO之CAS单点登录详细搭建:环境说明:同一个机器上环境如下:操作系统:windows7 64位JDK版本:1.7.0_80web容器版本:apache-tomcat-7.0.70 64位服务端:cas-3.5.2.1.zip服务端现在地址:https:///apereo/cas/archive/v4.2.3.zip客户端:cas-client-3.3.3-release.zip客户端下载地址:/cas-clients/eclipse版本:eclipse-jee-luna-SR2-win32-x86_64.zip1、将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 127.0.0.1 127.0.0.1 解释: =>> 对应部署cas server的tomcat,这个虚拟域名还用于服务端证书生成 =>> 对应部署client1客户端应用的tomcat =>> 对应部署client2客户端应用的tomcat3、安全证书配置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特别注意:您的名字与姓氏是什么?该项一定要使用网站的域名,例如: ,Cas Client使用httpclient访问cas server的时候,会严格的检查证书。
CAS单点登录(1):cas-4.0.0-server简单部署
CAS单点登录(1):cas-4.0.0-server简单部署下载CAS4.0.0选择4.0.0 的原因是:4.0.0以后打包⽐较⿇烦,4.0.0版本内有打包好的war下载地址解压找到war包部署1. 解压 cas-server-4.0.0-release.zip2. 将cas-server-4.0.0\modules⽬录下的cas-server-webapp-4.0.0.war 复制到Tomcat 的 webapps/下 。
3. 为了⽅便,修改tomcat下cas-server-webapp-4.0.0.war改名为cas.war启动tomcat若没有报错,访问出现如下页⾯则部署成功:登录成功默认的⽤户名个密码为: casuser/Mellon配置⽤户名和密码的⽂件是:apache-tomcat-8.0.52\webapps\cas\WEB-INF\ deployerConfigContext.xml deployerConfigContext.xml:<!--| TODO: Replace this component with one suitable for your enviroment.|| This component provides authentication for the kind of credential used in your environment. In most cases | credential is a username/password pair that lives in a system of record like an LDAP directory.| The most common authentication handler beans:|| * org.jasig.cas.authentication.LdapAuthenticationHandler| * org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler| * org.jasig.cas.adaptors.x509.authentication.handler.support.X509CredentialsAuthenticationHandler| * org.jasig.cas.support.spnego.authentication.handler.support.JCIFSSpnegoAuthenticationHandler--><bean id="primaryAuthenticationHandler"class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"><property name="users"><map><entry key="casuser"value="Mellon"/></map></property></bean>到此 cas-4.0.0的基本部署成功!有疑问可以私信或留⾔…。
cas标准对接方式
cas标准对接方式
CAS标准的对接方式主要是通过CAS服务实现的。
CAS 服务是一种单点登录服务,可以提供统一的认证和授权管理,支持多种应用系统间的单点登录和统一认证。
对接CAS服务的方式通常包括以下步骤:
1. 搭建CAS服务:部署CAS服务器,配置认证和授权规则,以及其他相关参数。
2. 客户端集成:在需要对接的应用系统中集成CAS客户端库,以便能够与CAS服务器进行通信。
3. 配置认证和授权:在客户端配置认证和授权信息,包括用户名、密码、角色等。
4. 单点登录:用户在登录时,通过CAS客户端向CAS 服务器发送认证请求,如果认证成功,则返回一个会话令牌(session token)。
5. 访问控制:客户端使用会话令牌向CAS服务器请求访问受保护的资源,如果令牌有效且具有足够的权限,则允许访问资源。
6. 会话管理:客户端可以使用会话令牌来管理用户的会话状态,例如检查会话是否过期、获取当前用户的角色和信息等。
在对接过程中,需要注意以下几点:
1. 选择合适的CAS客户端库,根据应用系统的架构和需求选择适合的库进行集成。
2. 配置认证和授权规则时,需要考虑到不同应用系统的特点和需求,以及安全性和性能方面的要求。
3. 在客户端集成CAS客户端库时,需要注意与应用的其它部分(如登录页面、权限管理页面等)的协调和交互。
4. 在使用会话令牌时,需要注意令牌的生成、传递、验证等环节的安全性和正确性。
cas单点登录系统:客户端(client)详细配置
cas单点登录系统:客户端(client)详细配置最近⼀直在研究cas登录中⼼这⼀块的应⽤,分享⼀下记录的⼀些笔记和⼼得。
后⾯会把cas-server端的配置和重构,另外还有这⼏天再搞nginx+cas的https反向代理配置,以及cas的证书相关的知识分享出来。
Cas由两部分组成,Cas Server和Cas Client。
Cas Server是Cas⾃⼰的服务端,⽽Cas Client是Cas客户端,往往客户端需要和我们具体的业务系统进⾏集成,这⾥我们主要详述cas 客户端的配置以及实例第⼀步:我们得有⼀个现成的web项⽬,然后我们要加⼊cas-client-core-xxx.jar到classpath;maven项⽬⽤这个:<dependency><groupId>org.jasig.cas.client</groupId><artifactId>cas-client-core</artifactId><version>3.3.3</version></dependency>第⼆步:配置Filter我们需要在应⽤的web.xml⽂件中配置四个Filter,这四个Filter必须按照固定的顺序来进⾏配置,⽽且它们必须配置在应⽤的其它Filter之前。
它们的先后顺序要求如下:1、AuthenticationFilter2、TicketValidationFilter3、HttpServletRequestWrapperFilter4、AssertionThreadLocalFilter1.1、 配置AuthenticationFilter1.1.1、AuthenticationFilter有两个必须指定的参数:casServerLoginUrl⽤来指定Cas Server登录地址,serverName或service⽤来指定认证成功后需要跳转地址。
cas部署
CAS做单点登陆(SSO)——部署CAS安装CAS让我们先简单了解下CAS。
全称 Central Authentication Service,中文翻译为中央认证服务,官方网址是/cas。
它是一个开源产品。
具有如下特点:1.用它做各个系统的集成后,各个系统只需关注跟CAS做集成即可,不会引入系统间的任何依赖。
2.各个系统集成后,登陆的认证中心在CAS,各个系统只能从CAS获得用户输入的用户名,然后自动完成登陆。
另外,CAS认证支持对数据库表的查询和比较。
3.CAS默认使用HTTPS协议,需要安装CA(Certificate Authority,中文名叫数字证书认证机构)证书。
如果不想启用HTTPS,请参考CAS不起用HTTPS。
下面介绍中默认为采用HTTPS协议。
安装步骤:定义域名HTTPS信任域名,而不信任IP。
因此需要先设定一个域名,如果不采用HTTPS,可以跳过这个一步。
假定域名设置为。
在C:\Windows\System32\drivers\etc\hosts添加内容如下:127.0.0.1 生成CA证书证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书。
我们这边用JDK自带的keytool工具生成证书, 如果以后真正在产品环境中使用肯定要去证书提供商去购买。
购买正版证书,请查看购买证书。
用JDK自带的keytool工具生成密钥库,在命令行输入:keytool -genkey -alias aurora -keyalg RSA -keystoreE:/tomcats/tomcat7/keystore/aurora没有Keytool这个命令?请参考设置JAVA环境变量。
以上这个命令就是在E:/tomcats/tomcat7/keystore/aurora上建立一个别名叫aurora,算法是RSA的证书库。
这里E:/tomcats/tomcat7/keystore/这个目录需要预先存在。
cas单点登录客户端说明文档
Java Web应用CAS Client端的配置详解配置环境:1. CAS Server 4.0已部署,跑在tomcat 7上。
部署在/cas上(本地hosts 文件配置域名)。
2. CAS Client web应用也跑在tomcat 7上,部署在/app(本地hosts文件配置域名)。
以下是各种web应用集成CAS的处理信息://=========没有使用特定安全框架如shiro的情况==========配置步骤:1).添加cas-client-core-3.1.10-sources.jar,如使用mvn,pom.xml中添加<dependency><groupId>org.jasig.cas</groupId><artifactId>cas-client-core</artifactId><version>3.1.10</version><exclusions><exclusion><artifactId>servlet-api</artifactId><groupId>javax.servlet</groupId></exclusion></exclusions></dependency>2). web.xml中添加:<!-- 与CAS Single Sign Out Filter配合,注销登录信息--><listener><listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class></listener><!-- CAS Server 通知CAS Client,删除session,注销登录信息--><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><!-- 登录认证,未登录用户导向CAS Server进行认证--><filter><filter-name>CAS Filter</filter-name><filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param><param-name>casServerLoginUrl</param-name><param-value>/cas/login</param-value> </init-param><init-param><param-name>serverName</param-name><param-value></param-value></init-param></filter><filter-mapping><filter-name>CAS Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- CAS Client向CAS Server进行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>/cas</param-value> </init-param><init-param><param-name>serverName</param-name><param-value></param-value> </init-param></filter><filter-mapping><filter-name>CAS Validation Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 封装request, 支持getUserPrincipal等方法--><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><!-- 存放Assertion到ThreadLocal中--><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>3). 编写个简单的测试页面test.jsp进行测试。
CAS单点登录(SSO)服务器配置
CAS单点登录(SSO)服务器配置一、单点登录的概念单点登录(SSO)英文全称Single Sign On,单点登录。
SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。
它是目前比较流行的企业业务整合的解决方案之一。
简单的 SSO 的体系中,会有下面三种角色: 1 、 User (多个) 2 、 Web 应用(多个) 3 、 SSO 认证中心(1 个)虽然 SSO 实现模式千奇百怪,但万变不离其宗:1) Web 应用不处理 User 的登录,否则就是多点登陆了,所有的登录都在 SSO 认证中心进行。
2) SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是谁。
3) SSO 认证中心和所有的Web 应用建立一种信任关系,SSO 认证中心对用户身份正确性的判断会通过某种方法告之Web 应用,而且判断结果必须被Web 应用信任。
二、单点登录原理当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket 送到认证系统进行效验,检查ticket的合法性。
如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
CAS单点登录原理图:三、CAS 单点登录配置1.SSL配置先在CAS官方上下载cas server,解压后找到在modules文件夹中找到cas-server-webapp-3.4.11.war,将文件名更改为cas.war后置于tomcat应用目录下。
因为CAS的服务器验证需要通过SSL来完成,所以SSL对于CAS来说是必须的,SSL 的配置不是本文的重点,我们只是做简要的介绍。
cas方案
cas方案CAS方案1. 简介CAS(Central Authentication Service)是一个开源的单点登录协议,也是一种常用的认证解决方案。
它提供了一种安全的方式,使用户只需要登录一次就可以访问多个相互信任的应用系统。
2. CAS的特点CAS方案具有以下几个特点:- 单点登录:用户只需要登录一次,即可访问多个应用系统,无需多次输入用户名和密码。
- 安全性:CAS采用票据机制,用户的密码不直接传递给应用系统,提高了用户密码的安全性。
- 高可扩展性:CAS可以集成到各种应用系统中,无论是Java、.NET,还是其他编程语言,都可以使用CAS进行认证。
- 自定义登录页面:CAS提供了自定义登录页面的功能,可以根据实际需求进行定制。
- 集群支持:CAS支持集群部署,提供了高可用性和负载均衡的能力。
3. CAS方案的工作原理CAS方案的工作原理如下:1. 用户访问应用系统A,由于没有登录,应用系统A重定向用户到CAS服务器的登录页面。
2. 用户在CAS服务器的登录页面输入用户名和密码进行认证。
3. CAS服务器认证通过后,生成一个票据,并将该票据返回给用户的浏览器。
4. 用户浏览器将带有票据的请求发送到应用系统A。
5. 应用系统A拿到票据后,向CAS服务器发送验证请求,验证票据的有效性。
6. CAS服务器验证通过后,应用系统A将用户登录信息保存到会话中,并允许用户访问。
7. 用户访问其他应用系统B,在没有登录的情况下,应用系统B也会将用户重定向到CAS服务器进行认证。
8. CAS服务器验证通过后,将用户登录信息返回给应用系统B,允许用户访问。
9. 用户访问其他应用系统C,同样会进行CAS认证。
4. CAS的部署和配置以下是部署和配置CAS方案的简要步骤:1. 下载CAS服务器的安装包,并解压到指定目录。
2. 配置CAS服务器的认证方式,可以使用数据库、LDAP等进行认证。
3. 配置CAS服务器的票据存储方式,可以选择将票据存储在内存、数据库等位置。
Cas详细配置
CAS框架配置详解博客分类:CAS一、概述单点登录(Single Sign On , 简称SSO )是目前比较流行的服务于企业业务整合的解决方案之一,SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
CAS(Central Authentication Service)是一款不错的针对Web 应用的单点登录框架,本文介绍了CAS 的原理、协议、在Tomcat 中的配置和使用,对于采用CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。
二、CAS介绍CAS 是Yale 大学发起的一个开源项目,旨在为Web 应用系统提供一种可靠的单点登录方法,CAS 在2004 年12 月正式成为JA-SIG 的一个项目()。
CAS 具有以下特点:1)开源的企业级单点登录解决方案2)CAS Server 为需要独立部署的Web 应用3)CAS Client 支持非常多的客户端(指Web 应用),包括Java,.Net,PHP,Perl,Ruby 等三、CAS原理及协议从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。
CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
AS 最基本的协议过程: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原理和实现
单点登录之CAS原理和实现CAS(Central Authentication Service)即中心认证服务,是一种实现单点登录的认证协议。
它的原理是一个中心化的认证系统,用户在一次登录后,可以访问多个不同系统而不需要重新进行认证。
CAS的实现原理如下:1.用户访问客户端应用:用户在浏览器中输入链接或者点击相关应用的入口,发送请求到客户端应用。
2.客户端应用重定向到CAS服务器:客户端接收到请求后,判断用户是否已经登录,如果没有登录,则将用户重定向到CAS服务器。
3.用户登录CAS服务器:用户在CAS服务器的登录页面输入用户名和密码进行认证。
4.CAS服务器生成票据:认证成功后,CAS服务器会生成一个全局唯一的票据,同时会在自己的数据库中记录该票据与用户的关联关系,并返回给客户端应用。
5.客户端应用验证票据:客户端应用收到票据后,会将票据发送给CAS服务器进行验证,以确认该票据的有效性。
6.CAS服务器返回验证结果:CAS服务器接收到客户端应用发送的票据后,会到自己的数据库中查找对应的用户信息,如果找到则返回验证成功的信息,否则返回验证失败的信息。
7.客户端应用授权用户访问:客户端应用通过CAS服务器返回的验证结果,判断用户是否合法,如果合法则授权用户访问相关资源。
8.用户访问客户端应用:用户通过CAS认证后,可以通过客户端应用访问相关资源,而无需再次进行认证。
CAS的实现过程可以概括为三个步骤:认证、票据生成和验证、授权。
在实现CAS时,需要考虑以下几个方面:1.用户认证:CAS服务器需要提供用户认证的功能,包括用户的用户名和密码的验证。
常用的认证方式有基于数据库的认证、LDAP认证等。
2.票据生成和验证:CAS服务器在认证成功后,会生成一个全局唯一的票据,并将该票据与用户的关联关系记录在自己的数据库中。
同时,客户端应用在接收到票据后需要将其发送给CAS服务器进行验证,以确认票据的有效性。
在实际应用中,通常会使用加密算法保护票据的安全性。
cas 解决方案
CAS 解决方案简介CAS(Central Authentication Service)是一种企业级的单点登录(SSO)解决方案。
它提供了一种安全的方式,在多个应用程序之间实现单一的认证机制。
CAS 通过集中管理用户身份信息,将用户认证的责任从各个应用程序中解耦,提供了更高的安全性和便利性。
本文将介绍 CAS 的基本原理和部署方案,以及常见的问题和解决方案。
CAS 基本原理CAS 的基本原理是通过一个中央认证服务器进行用户认证,并颁发一个全局的认证票据(ticket)。
这个 ticket 可以被其他应用程序验证,从而实现用户在多个应用程序之间的无缝访问。
CAS 的工作流程如下:1.用户访问需要认证的应用程序,应用程序检测到用户未登录。
2.应用程序重定向用户到 CAS 服务器的登录页面。
3.用户在 CAS 服务器上输入用户名和密码进行认证。
4.CAS 认证成功后,将一个 ticket 返回给用户的浏览器。
5.用户浏览器重定向回原始应用程序,并带上 ticket。
6.应用程序收到 ticket 后,向 CAS 服务器验证 ticket 的有效性。
7.CAS 服务器返回 ticket 的验证结果。
8.应用程序根据验证结果,决定是否允许用户访问。
CAS 部署方案CAS 的部署可以分为以下几个步骤:1. 安装 CAS 服务器CAS 服务器可以使用官方提供的 war 包进行安装。
首先需要准备一个 servlet 容器,如 Tomcat。
然后将 war 包部署到容器中,并配置相应的参数。
2. 配置 CAS 服务器CAS 服务器的配置文件主要包括cas.properties和cas.serviceRegistry.json两个文件。
cas.properties文件用于配置 CAS 服务器的基本信息,如认证方式、认证源、票据有效期等。
cas.serviceRegistry.json文件用于配置应用程序的信息,包括应用程序的名称、访问地址等。
CAS技术文档
Central Authentication Service (CAS)1 企业单点登录2 CAS系统集成与部署2.1 CAS服务器安装部署2.1.1 创建https协议证书使用JDK自带的工具keytool生成证书。
keytool -genkey -alias cas -keyalg RSA -keystore d:/ssokeys/cas密码:changeit域名:导出证书:keytool -export -file d:/ssokeys/cas.crt-alias cas -keystore d:/ssokeys /cas客户端的JVM导入证书keytool -import -keystore D:\developerTool\Java\jdk1.7.0_21\jre\lib\security\cacerts -file D:/ssokeys/cas.crt -alias cas2.1.2 配置WEB服务器SSL证书2.1.2.1 Tomcat6打开tomcat目录的conf/server.xml文件<connector port="8443" protocol="HTTP/1.1" sslenabled="true" maxthreads="150" scheme="https" secure="true" clientauth="false" sslprotocol="TLS" keystorefile="D:/ssokeys/cas" keystorepass="changeit"></connector>参数说明:•keystoreFile:在第一步创建的key存放位置•keystorePass:创建证书时的密码2.1.2.2 Weblogic102.1.3 配置cas程序包CAS服务器是一个JavaEE工程,需要部署到web服务器中,这里选择Tomcat6作为cas.war 程序包的部署容器。
手把手教你利用CAS实现单点登录
手把手教你利用CAS实现单点登录单点登录(Single Sign-On,简称SSO)是一种让用户只需要进行一次身份验证,就可以访问多个不同系统的认证机制。
SSO的实现通常需要借助于中央身份认证服务器(Central Authentication Service,简称CAS)。
CAS是一种基于票据的身份认证和访问控制系统,它可以为不同的应用系统提供统一的用户身份认证服务。
下面将手把手教你如何利用CAS实现单点登录。
1.安装配置CAS服务器首先,我们需要安装配置CAS服务器。
CAS服务器是使用Java开发的一个Web应用程序,可以运行在Tomcat等Java容器中。
具体安装步骤如下:1.3 打开`etc/cas.properties`文件,配置CAS服务器的相关参数,比如数据库连接信息、密钥等。
1.4 执行`./build.sh package`来构建CAS服务器应用程序。
1.5 将构建生成的`cas.war`文件部署到Tomcat或其他Java容器中,并启动该容器。
2.配置应用系统配置应用系统以支持CAS单点登录。
假设我们有一个应用系统A和一个应用系统B,我们希望用户在登录应用系统A后可以无需再次登录即可访问应用系统B。
2.1修改应用系统A的登录页面将应用系统A的登录页面修改为CAS服务器的登录页。
CAS服务器默认使用`/login`路径作为登录页面的URL。
使用CAS的登录页面可以保证用户在身份验证后可以正确跳转回应用系统A。
2.2配置应用系统A的CAS客户端将应用系统A配置成CAS的客户端,以便能够与CAS服务器进行通信。
配置方法通常是将CAS客户端的相关依赖库加入应用系统A的`pom.xml`文件,并在应用系统A的配置文件中配置CAS服务器的地址和其他参数。
2.3修改应用系统B的登录页面将应用系统B的登录页面修改为CAS服务器的登录页,同样使用CAS的登录页面。
2.4配置应用系统B的CAS客户端将应用系统B配置成CAS的客户端,配置方法与应用系统A类似。
CAS的基本架构
CAS的基本架构CAS(Central Authentication Service,中央认证服务)是由耶鲁大学开发的一种用于实现单点登录(SSO)的开源web身份验证协议。
CAS的基本架构由客户端、服务器和认证服务器组成,下面将详细介绍CAS的基本架构。
1. 客户端(Client):客户端是CAS系统的使用者,可以是任何Web应用程序或服务。
当用户访问客户端应用程序时,客户端会将用户重定向到CAS服务器以进行身份验证。
客户端通常使用SecurityAssertion Markup Language(SAML)协议与CAS服务器进行通信。
2. CAS服务器(CAS Server):CAS服务器是整个身份验证过程的核心。
它负责接收客户端发送的用户请求,并使用已配置的身份验证机制(如数据库、LDAP等)对用户进行认证。
一旦用户通过身份验证,CAS服务器将生成一个令牌(Ticket),并将其传递回客户端。
3. 认证服务器(Authentication Server):认证服务器是CAS系统的后端服务,负责存储和管理用户凭据。
认证服务器可以使用多种认证机制,如数据库、LDAP等。
当客户端将用户凭据发送到CAS服务器时,CAS服务器会将这些凭据转发给认证服务器进行验证。
以下是CAS系统的简化工作流程:1.用户访问应用程序:用户使用浏览器访问客户端应用程序。
2.重定向到CAS服务器:客户端应用程序检测到用户未通过身份验证,将用户重定向到CAS服务器以进行验证。
3.用户提供凭据:用户在CAS服务器登录页面上提供用户名和密码等凭据。
4.CAS服务器验证用户凭据:CAS服务器将提供的凭据发送到认证服务器进行验证。
如果凭据有效,则用户通过身份验证。
否则,CAS服务器将返回错误消息。
5. 生成令牌:CAS服务器生成一个令牌(Ticket)作为用户的身份验证凭证,并将其返回给客户端应用程序。
6.登录应用程序:客户端应用程序将令牌发送回CAS服务器以获取用户信息,CAS服务器将提供用户信息返回给客户端应用程序,然后客户端应用程序登录用户。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.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 应用建立一种信任关系。
二.C AS 的基本原理CAS(Central Authentication Service) 是Y ale 大学发起的构建Web SSO 的Java开源项目。
1.CAS 的结构体系◆CAS ServerCAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/ 密码等凭证(Credentials) 。
◆CAS ClientCAS 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/downloads/cas/cas-server-3.0.4.zip/tp/cas/cas-client-2.0.11.zip/maven/cas/jars/cas-server-jdbc-3.0.5-rc2.jar/(一) 将一个或者一些页面进行支持HTTPS传输协议(意义:对某些页面进行了安全传输)(重点掌握)1. 产生SERVER的证书库文件keytool -genkey -alias tomcat -keyalg RSA [-keystore keystore-file]并将证书文件放在web容器的目录下。
2.(在server端)配置tomcat使用HTTPS$CATALINA_HOME/conf/server.xml里<Connector port="8443" maxHttpHeaderSize="8192"keystorePass="changeit" keystoreFile="\conf\.keystore"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" disableUploadTimeout="true"acceptCount="100" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" />注意:keystorePass="changeit"(这个问证书库文件的密码,也就是上面配置产生的一个密码)keystoreFile="/.keystore"(这是证书库文件的存放路径,其中根目录“/”为tomcat的安装路径)3. 在WEB-INF\web.xml文件中增加<security-constraint><web-resource-collection ><web-resource-name >SSL</web-resource-name> <!--名字随便取--><url-pattern>/jsp2/el/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>解释:transport-guarantee元素指定了客户端和服务端的通信关系,有NONE,INTEGRAL,CONFIDENTIAL。
NONE表示着应用不需要任何传输保障。
INTEGRAL表示着在数据在客户端到服务端的过程中不能有任何改变。
CONFIDENTIAL表示在传输过程中防止其他传输内容的干扰。
在使用SSl时常用的就INTEGRAL或CONFIDENTIL。
4. 进行访问测试(二) 实现CAS系统1. 产生SERVER的证书库文件keytool -genkey -alias tomcat -keyalg RSA [-keystore keystore-file]并将证书文件放在web容器的目录下。
2.(在server端)配置tomcat使用HTTPS$CATALINA_HOME/conf/server.xml里<Connector port="8443" maxHttpHeaderSize="8192"keystorePass="changeit" keystoreFile="/.keystore"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" disableUploadTimeout="true"acceptCount="100" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" />注意:keystorePass="changeit"(这个问证书库文件的密码,也就是上面配置产生的一个密码)keystoreFile="/.keystore"(这是证书库文件的存放路径,其中根目录“/”为tomcat的安装路径)3. 将cas-server-3.0.4.zip解压,并将target/cas.war拷贝到webapps下。
4. 将cas-client-2.0.11.zip解压,把cas-client-2.0.11\java\lib\casclient.jar拷贝到client服务器上(这里为同一tomcat)的webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)5. 在要使用CAS的客户端应用里设置(以servlets-examples这个APP为例,在应用时,所有客户端均进行类似配置),我们使用ServletFilter(CAS client里提供的)来实现SSO的检查。
修改servlets-examples/WEB-INF/web.xml<filter><filter-name>CASFilter</filter-name><filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class><init-param><param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-na me><param-value>https://:port<!--这里是CAS server的loginURL-->/cas/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>https://:port<!--这里是CAS server的URL验证器-->/cas/proxyValidate</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>:port <!--client:port就是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP(默认为localhost)和port(默认8080)--></param-value></init-param></filter><filter-mapping><filter-name>CASFilter</filter-name><url-pattern>/servlet/*</url-pattern></filter-mapping>配置好的例子:<filter><filter-name>CASFilter</filter-name><filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class><init-param><param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name><param-value>https://localhost:8443/cas/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>https://localhost:8443/cas/proxyV alidate</param-value> </init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>localhost:8080</param-value></init-param></filter><filter-mapping><filter-name>CASFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>6..导出SERVER端的的证书文件(证书文件只包含公钥)keytool -export -file myserver.crt -alias my-alias-name -keystore keystore-file// keytool -export -file myserver.crt -alias tomcat -keystore .keystore7.在客户端的JVM里的证书库cacerts中导入信任的SERVER的证书(根据情况有可能需要管理员权限)keytool -import -keystore cacerts -file myserver.crt -alias hostname(别名)然后将cacerts 复制到%JAVA_HOME%/jre/lib/security/目录下//keytool -import -keystore cacerts -file myserver.crt -alias tomcat8.测试.把server和client分别起来(这里为同一个Tomcat,实际应用时可以在多个服务器上,且client可以为多个应用),检查启动的LOG是否正常,如果一切OK,就访问http://localhost:8080/servlets-examples/servlet/HelloWorldExample系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,验正通过之后就会访问到真正的HelloWorldExample这个servlet了四.结合实际的环境的扩展1多个web应用如何实现单点登陆(!――大家思考一下:如果我想在配置一个客户端,需要什么步骤?)下面以jsp-examples为例子,进行下面得阐述:(1)在\webapps\jsp-examples\WEB-INF\web.xml文件中进行配置:<filter><filter-name>CASFilter</filter-name><filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class><init-param><param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name><param-value>https://localhost:8443/cas/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>https://localhost:8443/cas/proxyV alidate</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>localhost:8080</param-value></init-param></filter><filter-mapping><filter-name>CASFilter</filter-name><url-pattern>/jsp2/simpletag/*</url-pattern></filter-mapping>(2)在webapps\jsp-examples\WEB-INF\lib增加引用得jar包,casclient.jar。