- 浏览: 138032 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (137)
- java (138)
- c# winform (笨方法)根据不同的样式配置 设置窗体相关控件的背景 以改变窗体风格 (1)
- Android平台下实现一个进程管理器 (1)
- 装饰模式 (1)
- 【转】介绍线性代数 (1)
- fqueue初步分析 (1)
- 千万级sql优化 (1)
- 开源项目 (1)
- js弹出遮罩层【并弹出提示信息】 (1)
- 代码高亮、源码格式、iteye代码格式的种种方法 (1)
- Drupal学习笔记(四)warning: array_key_exists(): The first argument should be either a string or an integer (1)
- 2011年Java EE生产力报告 (1)
- java(j2se)学习笔记----类注释文档编写方法? (1)
- ubuntu 添加应用程序 到快速启动 (1)
- JPA注解配置实例 (1)
- C++著名内裤 (1)
- Android笔试或者面试的几个题目 (1)
- Ajax&&GWT (1)
- IHS静默安装(转) (1)
- WIN98下运行DOTNET程序的一些问题 (1)
- 开启新的项目——基于电子邮件的知识管理系统 (1)
- 这里的BLOG服务器也太不稳定了 (1)
- MapXtreme2004代码 读取TAB表中的元素 (1)
- 终于把我的大部分BLOG复制到这里来了 (1)
- 2011NOKIA笔试题目 (1)
- Ajax实现省市二级联动(源代码) (1)
- mxgraph之保存图片 (1)
- sso单点登录 (1)
- Android开发之SurfaceView (1)
- Android开发之ListView (1)
- SQL SERVER 2008 中分页方法集锦 (1)
- 2011-12-2 (1)
- 分页组件 (1)
- Myeclipse自动加入struts 2 Core Libraries导致antlr错误 (1)
- jbpm4在tomcat6中EL错误 (1)
- c++中有关数组和指针的若干问题 (1)
- rails 上传文件和删除文件 (1)
最新评论
-
mazongfei:
就是有点乱,不过还是不错的
sso单点登录 -
xiaokang1582830:
写得这么乱,地球人是无法看得懂的...
sso单点登录 -
shenyu:
大侠,下回分解在哪里啊?
mxgraph之保存图片 -
GZQ0821:
为啥不编译后贴出来呢!
SQL SERVER 2008 中分页方法集锦 -
evil9999:
http://belives2012.blog.163.com ...
千万级sql优化
SSO单点登录
目录
1 单点登录 1
1.1 单点登录的背景 1
1.2 什么是单点登录 1
1.3 单点登录的好处 3
1.4 单点登录的解决方案 3
2 CAS 3
2.1 CAS简介 3
2.2 CAS原理与协议 3
2.3 CAS认证依据 4
3 CAS配置 5
3.1 环境准备 5
3.2 CAS-SERVER配置 5
3.2.1 Cas-Server的部署 5
3.2.2 Cas-Server HTTPS取消配置 5
3.2.3 Cas-Server验证方式配置 6
3.2.4 Cas-Server超时配置 7
3.3 CAS-CLIENT配置 8
3.3.1 Cas-Client的部署 8
3.3.2 Cas-Client的配置 8
3.4 HTTPS配置 10
3.4.1 生成server key 10
3.4.2 将证书导入JDK的证书信任库中 10
3.4.3 配置tomcat 11
3.4.4 恢复相应的配置 11
1 单点登录
1.1 单点登录的背景
随着信息化进一步发展和企业的业务运营需要,企业内部的应用系统越来越多。如OA办公自动化系统,HR人力资源管理系统,企业ERP系统,企业BBS系统等,这些系统有着自己独立的用户认证模块和机制,用户不得不记住每一个系统的登录账号和密码,并且在使用不同的系统时,必须重复登录,给用户带来了很大的不便,同时对用户信息没有一个很好的统一管理,使得维护用户信息变的比较困难。针对这种情况,单点登录模型应用而生。
1.2 什么是单点登录
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
单点登录的机制如下图所示,当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录(1);根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket(2);用户再访问别的应用的时候(3,5)就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性(4,6)。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
从上面的视图可以看出,要实现SSO,需要以下主要的功能:
? 所有应用系统共享一个身份认证系统。
统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。
? 所有应用系统能够识别和提取ticket信息
要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。
上面的功能只是一个非常简单的SSO架构,在现实情况下的SSO有着更加复杂的结构。有两点需要指出的是:
? 单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,如下图所示。事实上,只要统一认证系统,统一ticket的产生和效验,无论用户信息存储在什么地方,都能实现单点登录。
? 统一的认证系统并不是说只有单个的认证服务器,如下图所示,整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。如下图,当用户在访问应用系统1时,由第一个认证服务器进行认证后,得到由此服务器产生的ticket。当他访问应用系统4的时候,认证服务器2能够识别此ticket是由第一个服务器产生的,通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍然能够完成SSO的功能。
1.3 单点登录的好处
从用户的角度来看:能够及时的访问到所需的资源,提高生产效率,避免了记忆多个用户名,密码,增强了用户体验。
从安全的角度来看:单点登录为其他应用系统提供了更强的身份认证机制,从而提高了整体系统的安全性。
从管理的角度来看:单点登录统一了身份认证和机制,减少了系统维护人员的工作。
1.4 单点登录的解决方案
目前有很多单点登录的实现方案,其中最常用的就是单点认证机制。
2 CAS
2.1 CAS简介
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:
开源的企业级单点登录解决方案。
CAS Server 为需要独立部署的 Web 应用。
CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
2.2 CAS原理与协议
从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。下图是 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 验证的过程对于用户是透明的。
2.3 CAS认证依据
TGC:(Ticket granting cookie)允许票据cookie(cookie中包含有TGT)浏览器在登录CAS认证中心成功后,认证中心在该浏览器中写下的一个没有任何人信息的cookie,主要表示该用户已经被认证中心通过,为以后登录应用系统提供依据。
ST:(Service Ticket)服务票据 当用户从浏览器请求使用受保护的资源时,应该用的CAS认证客户端会自动重新定向到认证中心,认证中心根据TGC分发给该请求一个服务票据,然后CAS认证客户端持有该ST去确认并取得该用户的身份。
3 CAS配置
3.1 环境准备
JAVA环境:JDK-1.6,Tomcat-6,MySQL-5.1
CAS:cas-server-3.4.11,cas-client-3.2.1
CAS下载地址: http://www.jasig.org/cas
3.2 Cas-Server配置
3.2.1 Cas-Server的部署
下载cas-server程序,将cas-server-webapp-<版本号>.war 拷贝到 tomcat的 webapps 目录,并更名为 cas_server.war
启动 tomcat,然后访问:https://localhost:8080/cas_server ,如果能出现正常的 CAS 登录页面,则说明 CAS Server 已经部署成功。同时也要修改WEB-INF/ cas.properties中 server.prefix=http://localhost:8080/cas_server
3.2.2 Cas-Server HTTPS取消配置
(1)修改cas server下\WEB-INF\deployerConfigContext.xml文件
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" p:requireSecure="false"/>
增加参数p:requireSecure="false",是否需要安全验证,即true采用HTTPS,false为不采用。
(2)修改cas server下
WEB-INF\springconfiguration\ticketGrantingTicketCookieGenerator.xml文件
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas" />
</beans>
参数p:cookieSecure="true",TRUE为采用HTTPS验证,与deployerConfigContext.xml的参数保持一致。
参数p:cookieMaxAge=“-1”,简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。
(3)修改cas server下\WEB-INF\spring-configuration\warnCookieGenerator.xml文件
<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />
两个参数与上面同理。
3.2.3 Cas-Server验证方式配置
cas server下\WEB-INF\deployerConfigContext.xml文件中默认了cas账号验证方式。该认证方式为用户名和密码相同即可通过认证。即默认情况下,登录的时候我们只要输入相同的用户名和密码即可登录成功。
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
3.2.3.1 配置数据库验证
(1) 加入数据库验证依赖包
将下载的 cas-server-3.4.11-release.zip 包解开后,在 modules 目录下可以找到包 cas-server-support-jdbc-3.4.11.jar,将该包加入到cas server项目的lib依赖库中,该包提供了通过 JDBC 连接数据库进行验证的缺省实现,基于该包的支持,我们只需要做一些配置工作即可实现 JDBC 认证。JDBC 认证方法支持多种数据库,DB2, Oracle, MySql, Microsoft SQL Server 等均可
(2) 配置数据源
cas server下\WEB-INF\deployerConfigContext.xml文件中配置数据源
<!-- 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="initialPoolSize" value="${jdbc.initialPoolSize}" />
<property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
</bean>
(3) 注释默认认证方式
<!--
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
-->
(4) 配置SQL方式的验证
<!-- 用sql形式验证 -->
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from t_user where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
(5) 配置指定表和字段的验证方式
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"
abstract="false" lazy-init="default" autowire="default">
<property name="dataSource" ref="dataSource" />
<property name=“tableUsers” value=“t_user” />
<property name="fieldUser" value="username"/>
<property name="fieldPassword" value="password"/>
</bean>
(6) 配置自己的加密验证方式
<!-- 在用户验证中加入 -->
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from users where username=?" />
<property name="dataSource" ref="dataSource" />
<property name=“passwordEncoder” ref=“mypasswordEncoder”/>
</bean>
(自定义加密方式 ,此时需增加mypasswordEncoder bean)
<bean id="mypasswordEncoder"
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="MD5"/>
</bean>
此类默认支持MD5 与SHA1两种加密方式,若不满足需求则可自定义加密方式,需实现PasswordEncoder 接口
(7) L
3.2.4 Cas-Server超时配置
? 服务端连接超时配置
修改cas server下\WEB-INF\sping-configuration\applicationContext.xml,
<bean id="httpClient" class="org.jasig.cas.util.HttpClient"
p:readTimeout="5000"
p:connectionTimeout="5000"/>
? TGC的存活周期
修改\WEB-INF\spring-configuration\ticketExpirationPolicies.xml文件,通过TimeoutExpirationPolicy来设置CAS TGC存活周期参数,参数默认是120分钟,在合适的范围内设置最小值,太短,会影响SSO体验,太长,会增加安全性风险。
<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy">
<!-- This argument is the time a ticket can exist before its considered expired. -->
<constructor-arg
index="0"
value="7200000" />
</bean>
3.3 Cas-Client配置
3.3.1 Cas-Client的部署
将下载的 cas-client-3.2.1-release.zip 包解开后,在 modules 目录下可以找到包 cas-client-core-3.2.1.jar和commons-logging-1.1.jar,将该包加入到cas client项目的lib依赖库中。
3.3.2 Cas-Client的配置
在cas client项目的web.xml加入下面的配置。
<!-- 单点退出 可选配-->
<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>http://localhost:8080/cas_server/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost:8080</param-value>
</init-param>
</filter>
<!-- 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>http://localhost:8080/cas_server</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost:8080</param-value>
</init-param>
<init-param>
<param-name>useSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!—request封装请求参数配置 可选配置 -->
<filter>
<filter-name>CAS HttpServletRequest WrapperFilter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS HttpServletRequest WrapperFilter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
3.4 HTTPS配置
3.4.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文件成功.
3.4.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.4.3 配置tomcat
将生成证书复制到tomcat主目录下,修改%TOMCAT_HOME%\conf\server.xml,添加如下配置
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
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为自定义的服务器证书的密码
3.4.4 恢复相应的配置
在cas server配置中恢复取消HTTPS的配置。
在cas client配置中修改cas server路径,将http路径修改为https路径。
-----------------------------------------------
参考:
单点登录实现文档
cas配置文档
<ul style="display:none;">
</ul>
<ul style="display:none;">
</ul>
<ul style="display:none;">
</ul>
<ul style="display:none;">
</ul>
发表评论
-
rails 上传文件和删除文件
2012-02-07 14:33 1121文件上传,页面代码: <%form_tag '/ ... -
c++中有关数组和指针的若干问题
2012-02-07 14:13 822<pre class="reply-t ... -
jbpm4在tomcat6中EL错误
2012-02-04 14:03 1089? jbpm4 在tomcat6 下面ssh2 这个错 ... -
Myeclipse自动加入struts 2 Core Libraries导致antlr错误
2012-02-04 13:29 995解决方法: 选择windows---preferenc ... -
分页组件
2012-02-03 12:23 927撒地方阿斯顿的撒啊受到爱上 ... -
2011-12-2
2012-02-02 15:34 752ubuntu系统root默认密码,每次开机会随机产生默 ... -
SQL SERVER 2008 中分页方法集锦
2012-02-01 09:34 1406<span style="font-s ... -
Android开发之ListView
2012-01-31 13:53 1270<p><br></p&g ... -
Android开发之SurfaceView
2012-01-11 15:34 1262<h1>Android开发 ... -
mxgraph之保存图片
2011-12-28 18:38 24501、写在前端:任何情况下,保存图片不可能只通过前台代码 ... -
Ajax实现省市二级联动(源代码)
2011-12-28 16:23 5021<span style="font-f ... -
2011NOKIA笔试题目
2011-12-21 09:29 1078今天去NOKIA机试,纯粹打酱油,没什么准备,题目貌似 ... -
终于把我的大部分BLOG复制到这里来了
2011-12-16 16:22 1041本来我的BLOG都在博客中国的<img src= ... -
MapXtreme2004代码 读取TAB表中的元素
2011-12-15 12:14 957<?xml:namespace prefix = ... -
这里的BLOG服务器也太不稳定了
2011-12-14 20:53 699<p class="MsoPlainT ... -
开启新的项目——基于电子邮件的知识管理系统
2011-12-14 19:59 944</span></font>& ... -
WIN98下运行DOTNET程序的一些问题
2011-12-14 17:24 814</span></font>& ... -
IHS静默安装(转)
2011-12-13 11:59 1335<span style="col ... -
Ajax&&GWT
2011-12-13 10:14 680工作的久了,一直忙于公司相关的技术和业务上,对于如今流 ... -
Android笔试或者面试的几个题目
2011-12-12 09:59 884最近一直在帮项目组招聘Android开发人员。面试的过 ...
相关推荐
SSO单点登录
sso单点登录ppt.ppt
SSO(Single Sign-On)单点登录是一种网络访问控制机制...对于理解SSO单点登录解决方案,提升企业内部系统的用户体验和安全管理具有重要价值。通过深入学习这些资料,可以掌握如何设计和实施一个高效、安全的SSO系统。
SSO(Single Sign-On)单点登录...总之,SSO单点登录为用户提供了便捷的访问体验,同时降低了管理多系统登录的复杂性。通过理解其原理和实现方式,我们可以根据具体需求选择合适的技术方案,构建高效且安全的SSO系统。
因为公司要实现SSO单点登录的效果,最近在网上找了一些资料,但是都没有好用的, 所以自己用PHP 使用TP5.0 实现了SSO单点登录,可以跨多个域名。 下载后在本地配置好 A,B,C 3个网站,就可以模拟效果了。
在“sso单点登录源代码”中,我们可以看到以下几个关键组成部分: 1. **SSOLab.sln**:这是一个Visual Studio解决方案文件,包含了整个SSO项目的所有组件。通过这个文件,开发者可以打开并管理整个项目,包括各个子...
以上是SSO单点登录在Java环境中的主要技术和知识点,理解并掌握这些内容,有助于构建高效且安全的多系统登录解决方案。对于各应用独立用户库的情况,可以通过用户同步、联合身份或联邦身份管理等方式来实现。在具体...
在"SSO单点登录源码"这个主题中,我们主要关注的是如何实现这样一个系统。通过提供的链接(http://www.blogjava.net/xcp/archive/2010/04/13/318125.html),我们可以了解到SSO的基本原理和实现步骤。在这个样例中,...
"CAS实现sso单点登录原理" CAS(Central Authentication Service)是Yale大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的单点登录解决方法(属于Web SSO)。CAS开始于2001年,并在2004年12月...
总的来说,SSO单点登录技术是现代企业信息系统中不可或缺的一部分,它通过统一的身份认证机制,提高了用户的工作效率,同时也简化了系统的安全管理。理解和掌握SSO的工作原理及实现方式,对于IT专业人员来说至关重要...
这个“sso单点登录demo”是一个Java实现的示例,包含了三种不同的场景:相同域名、相同父类域名以及不同域名的SSO解决方案。 1. **相同域名的SSO** (`sso_same_domain`): 在同一域名下实现SSO,通常比较直接,因为...
总的来说,SSO单点登录的实现涉及身份验证、票据管理和服务间的协作。在Java环境下,我们可以选择Spring Security、CAS或Keycloak等工具来构建SSO系统,并结合服务综合治理框架,如Spring Cloud或Netflix OSS,提高...
基于JWT实现SSO单点登录流程图解 基于JWT实现SSO单点登录流程图解是指使用JSON Web Token(JWT)来实现单点登录(SSO)的机制。在这种机制中,用户只需要登录一次,就可以访问多个应用服务器上的资源,而不需要再次...