精华内容
参与话题
问答
  • 什么是单点登录?单点登录的三种实现方式

    万次阅读 多人点赞 2018-06-07 21:18:22
    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像...

    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下两个:

    • 存储信任
    • 验证信任

    如果一个系统做到了开头所讲的效果,也就算单点登录,单点登录有不同的实现方式,本文就罗列我开发中所遇见过的实现方式。

    以Cookie作为凭证媒介 
    最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。 
    用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。

    这里写图片描述

    不难发现以上方式把信任存储在客户端的Cookie中,这种方式很容易令人质疑:

    • Cookie不安全
    • 不能跨域实现免登

    对于第一个问题,通过加密Cookie可以保证安全性,当然这是在源代码不泄露的前提下。如果Cookie的加密算法泄露,攻击者通过伪造Cookie则可以伪造特定用户身份,这是很危险的。 
    对于第二个问题,更是硬伤。

    通过JSONP实现 
    对于跨域问题,可以使用JSONP实现。 
    用户在父应用中登录后,跟Session匹配的Cookie会存到客户端中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求中带上父应用域名下的Cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。

    这里写图片描述

    这种方式虽然能解决跨域问题,但是安全性其实跟把信任存储到Cookie是差不多的。如果一旦加密算法泄露了,攻击者可以在本地建立一个实现了登录接口的假冒父应用,通过绑定Host来把子应用发起的请求指向本地的假冒父应用,并作出回应。 
    因为攻击者完全可以按照加密算法来伪造响应请求,子应用接收到这个响应之后一样可以通过验证,并且登录特定用户。

    通过页面重定向的方式 
    最后一种介绍的方式,是通过父应用和子应用来回重定向中进行通信,实现信息的安全传递。 
    父应用提供一个GET方式的登录接口,用户通过子应用重定向连接的方式访问这个接口,如果用户还没有登录,则返回一个的登录页面,用户输入账号密码进行登录。如果用户已经登录了,则生成加密的Token,并且重定向到子应用提供的验证Token的接口,通过解密和校验之后,子应用登录当前用户。

    这里写图片描述

    这种方式较前面两种方式,接解决了上面两种方法暴露出来的安全性问题和跨域的问题,但是并没有前面两种方式方便。 
    安全与方便,本来就是一对矛盾。

    使用独立登录系统 
    一般说来,大型应用会把授权的逻辑与用户信息的相关逻辑独立成一个应用,称为用户中心。 
    用户中心不处理业务逻辑,只是处理用户信息的管理以及授权给第三方应用。第三方应用需要登录的时候,则把用户的登录请求转发给用户中心进行处理,用户处理完毕返回凭证,第三方应用验证凭证,通过后就登录用户。

    本文转载自JC_Huang 
    原文链接:http://www.jianshu.com/p/613e44d4a464

    展开全文
  • CAS实现单点登录(SSO)经典完整教程

    万次阅读 多人点赞 2011-08-06 11:01:38
    一、简介 1、cas是有耶鲁大学研发的单点登录服务器 2、本教材所用环境 Tomcat7.2JDK6CAS Service 版本 cas-server-3.4.8-rele

     目录

        一、简介

        二、生成证书

        三、配置服务端

       四、配置客户端

       五、常见问题说明


        一、简介

                    1、cas是有耶鲁大学研发的单点登录服务器

                     2、本教材所用环境

     

    • Tomcat7.2
    • JDK6
    • CAS Service 版本    cas-server-3.4.8-release
    • CAS Client版本      cas-client-3.2.1-release                                

     

        二、生成证书

                                证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用了

                        JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。

                                中文官方网站:http://www.verisign.com/cn/

                       1、用JDK自带的keytool生成证书

                                

    命令:keytool -genkey -alias  smalllove -keyalg RSA -keystore D:/keys/smallkey

                       此命令是生成一个证书,其中 smalllove 是证书别名

     

         此命令的执行如图所示:

                        

                          其中名字与姓氏这一最好写你的 域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,

                  注意不要写IP。

               2、导出证书

                    

    命令:C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey

                    如图:

     

                          

                   密码为上步设置的密码。

               3、把证书导入到客户端JDK中。

                    

    命令:keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove

               此命令是把证书导入到JDK中。

     

               如图:

                

              到此证书导入成功。

               注意:在此步有可能出现如下错误

         

               C:\>keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove
                  输入keystore密码:
                keytool错误: java.io.IOException: Keystore was tampered with, or password was incorrect

                         次错误的解决方法是,把%JAVA_HOME%\lib\security下的cacerts文件删除掉,在执行。

     

                     

        三、配置服务端

                          1、 下载CAS的服务端,解压,把解压后的文件中modules文件夹中的cas-server-webapp-3.4.8.war文件拷贝的%TOMCAT_HOME%\webapps

                   下,并修改文件名为:cas.war。

                                 源码下载地址:https://github.com/Jasig/cas/releases

                          2、修改%TOMCAT_HOME%\conf\server.xml文件

                                   去掉此文件83到93行之间的注释,修改为:

                           

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" 
    			   keystoreFile="D:/keys/smallkey"  <!--在2.1中生成的证书的位置-->
    			   keystorePass="smalllove"/>       <!--在2.1中设置的密码-->

                         3、以上配置完成访问http://yourhost:8443/cas出现一下页面

     

                                       

                              点击继续浏览会出现

                                             

                             输入用户名admin和密码admin登录则会出现

                                          

                             登录成功。

                             至此,说明服务端配置成功。

       四、配置客户端

                       1、添加客户端到你的项目中

                              ·手动下载下载cas-client,地址:http://downloads.jasig.org/cas-clients/,然后解压cas-client-3.1.12.zip,在modules文件夹中有需要的jar包,                         请根据自己的项目情况选择使用,把相应的jar包放到你项目WEB-INF/lib下。

                       ·使用maven

                                  

    <!-- cas -->
    <dependency>
    	<groupId>org.jasig.cas.client</groupId>
    	<artifactId>cas-client-core</artifactId>
    	<version>3.1.12</version>
    </dependency>

                    2、在客户端项目的web.xml配置过滤器

                            

    <!-- ======================== 单点登录开始 ======================== -->
    	<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->
    	<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://www.travel.com:8443/cas/login</param-value>
    			<!--这里的server是服务端的IP -->
    		</init-param>
    		<init-param>
    			<param-name>serverName</param-name>
    			<param-value>http://www.travel.com:8080</param-value><span style="color:#FF0000;"> ①</span>
    		</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://www.travel.com:8443/cas</param-value>
    		</init-param>
    		<init-param>
    			<param-name>serverName</param-name>
    			<param-value>http://www.travel.com:8080</param-value>  <span style="color:#FF0000;">②</span>
    		</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>
    
    	<!-- ======================== 单点登录结束 ======================== -->

                 

     

     

       五、常见问题说明

                      错误一、

                               

             若出现以上错原因是:你在客户端的web.xml中①,②的配置有误。

                 错误二、

                             

    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
    PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
    unable to find valid certification path to requested target

                      若出现次错误是有与你客户端的证书有问题。重新导入你证书。

     

    展开全文
  • 单点登录(SSO)

    万次阅读 多人点赞 2019-10-26 14:27:37
    一、SSO(单点登录)介绍 SSO英文全称Single SignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的...

    一、SSO(单点登录)介绍

    SSO英文全称Single SignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。

    实现机制

    当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。

    下面对上图简要描述

    1. 用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
    2. sso认证中心发现用户未登录,将用户引导至登录页面
    3. 用户输入用户名密码提交登录申请
    4. sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌
    5. sso认证中心带着令牌跳转会最初的请求地址(系统1)
    6. 系统1拿到令牌,去sso认证中心校验令牌是否有效
    7. sso认证中心校验令牌,返回有效,注册系统1
    8. 系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源
    9. 用户访问系统2的受保护资源
    10. 系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
    11. sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
    12. 系统2拿到令牌,去sso认证中心校验令牌是否有效
    13. sso认证中心校验令牌,返回有效,注册系统2
    14. 系统2使用该令牌创建与用户的局部会话,返回受保护资源

      用户登录成功之后,会与sso认证中心及各个子系统建立会话,用户与sso认证中心建立的会话称为全局会话,用户与各个子系统建立的会话称为局部会话,局部会话建立之后,用户访问子系统受保护资源将不再通过sso认证中心,全局会话与局部会话有如下约束关系

    1. 局部会话存在,全局会话一定存在
    2. 全局会话存在,局部会话不一定存在
    3. 全局会话销毁,局部会话必须销毁

     

    2、注销

      单点登录自然也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁,用下面的图来说明

    3b139d2e-0b83-4a69-b4f2-316adb8997ce

      sso认证中心一直监听全局会话的状态,一旦全局会话销毁,监听器将通知所有注册系统执行注销操作

      下面对上图简要说明

    1. 用户向系统1发起注销请求
    2. 系统1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求
    3. sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址
    4. sso认证中心向所有注册系统发起注销请求
    5. 各注册系统接收sso认证中心的注销请求,销毁局部会话
    6. sso认证中心引导用户至登录页面

    总结

    单点登录(SSO)的所有流程都介绍完了,原理大家都清楚了。总结一下单点登录要做的事情:

    • 单点登录(SSO系统)是保障各业务系统的用户资源的安全 。
    • 各个业务系统获得的信息是,这个用户能不能访问我的资源。
    • 单点登录,资源都在各个业务系统这边,不在SSO那一方。 用户在给SSO服务器提供了用户名密码后,作为业务系统并不知道这件事。 SSO随便给业务系统一个ST,那么业务系统是不能确定这个ST是用户伪造的,还是真的有效,所以要拿着这个ST去SSO服务器再问一下,这个用户给我的ST是否有效,是有效的我才能让这个用户访问。
    展开全文
  • 完全跨域的单点登录

    万次阅读 多人点赞 2014-03-05 16:11:50
    完全跨域的单点登录实现方案基本和上篇文章介绍的一样,只不过生成ticket的过程更复杂些。上篇文章中的项目是不能完全跨域的,由于多个应用系统以及认证系统域不同,也没有共同的父域,导致登录后,认证系统向...

           本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/20545513,转载请注明。
           完全跨域的单点登录实现方案基本和上篇文章介绍的一样,只不过生成ticket的过程更复杂些。上篇文章中的项目是不能完全跨域的,由于多个应用系统以及认证系统域不同,也没有共同的父域,导致登录后,认证系统向浏览器写的ticket在其它应用系统中获取不到,这时访问其它应用系统时,没有携带着ticket的cookie,无法认证也无法单点登录。那解决的方案是每个应用系统都向浏览器cookie中写入ticket,请看下图,图中浅蓝色圆角区域代表不同的域,当用户通过浏览器第一次访问应用系统1时,由于还没有登录,会被引导到认证系统进行登录。下面开始单点登录的过程:认证系统根据用户在浏览器中输入的登录信息,进行身份认证,如果认证通过,返回给浏览器一个证明[认证系统_ticket];这时再通过浏览器将[认证系统_ticket]发送到到应用系统1的设置cookie的url,应用系统1返回给浏览器一个证明[应用系统1_ticket],这时再将请求重定向到最初访问的页面,以后应用系统1就可以自动登录了。现在用户访问了应用系统2,由于应用系统2没有生成过cookie(但是用户已经在应用系统1登录过一次了),将请求重定向到认证系统;认证系统检测到已经生成过[认证系统_ticket]了,认证通过;再通过浏览器将[认证系统_ticket]发送到到应用系统2的设置cookie的url,应用系统2返回给浏览器一个证明[应用系统2_ticket],这时再将请求重定向到最初访问的页面。应用系统3也同样原理,我们等于将ticket做了一次同步,保证了每个应用系统都有一份认证系统产生的ticket。剩余的ticket验证过程和上篇文章一样了。

           ticket同步的过程用jsonp应该也可以实现,我基于上篇文章中的项目实现了完全跨域的单点登录,可以在这里下载项目。

    域名准备

           修改hosts文件,映射3个域名:

    127.0.0.1 web1.com
    127.0.0.1 web2.com
    127.0.0.1 passport.com

           三个域名都是独立的,没有共同父域,web1和web2用于访问应用系统,passport用于访问认证系统。

    项目部署

           项目中包含的是两个Eclipse Project,导入到Eclipse/MyEclipse后,可能需要设置下JavaEE类库。WebSSOAuth为认证系统,WebSSODemo为应用系统,如果映射的域名和我设置的一样,不需要设置,直接部署即可。如果不一样,需要修改下WebSSODemo/WEB-INF/web.xml文件。关键配置信息如下:

    <filter>
        <filter-name>SSOAuth</filter-name>
        <filter-class>com.ghsau.filter.SSOAuth</filter-class>
        <init-param>
            <!-- 认证系统服务 -->
        	<param-name>SSOService</param-name>
        	<param-value>http://passport.com:8080/WebSSOAuth/SSOAuth</param-value>
        </init-param>
        <init-param>
            <!-- 认证系统ticket名称 -->
        	<param-name>cookieName</param-name>
        	<param-value>SSOID</param-value>
        </init-param>
    </filter>
    <filter-mapping>
    	<filter-name>SSOAuth</filter-name>
    	<url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
    	<filter-name>SSOAuth</filter-name>
    	<url-pattern>/logout</url-pattern>
    </filter-mapping>
    <filter-mapping>
    	<filter-name>SSOAuth</filter-name>
    	<url-pattern>/setCookie</url-pattern>
    </filter-mapping>

           如果域名或端口号和我的不一致,可以修改对应配置项。最后部署到应用服务器中,启动服务器。

    SSO使用

           首先输入第一个应用系统的访问地址,http://web1.com:8080/WebSSODemo/index.jsp,如果是第一次访问的话,会自动跳转到登录页,如下图:

           系统中内置了3个用户,张三、李四、王五,用户名和密码皆为拼音全拼,输入zhangsan/zhangsan登录后,会自动跳转到我们刚才访问的页面,页面中显示了登录的用户名及欢迎信息,如下图:

           这时,我们再输入第二个应用系统的访问地址,http://web2.com:8080/WebSSODemo/index.jsp,我们发现,没有进行第二次登录,同样页面中显示了登录的用户名及欢迎信息,如下图:

           我们接着点击Logout注销用户,页面跳转到了登录页面,这时我们再回头访问第一个应用系统的页面,发现同样跳转到了登录页面。
           互联网中的完全跨域登录的站点也有很多,如淘宝天猫,但肯定不是我这样实现的。我的实现中,认证系统和应用系统是通过url参数来传递ticket,可能存在一些不稳定因素。应用系统的每次请求都会通过HTTP远程到认证系统进行验证ticket,速度上应该会慢一些,这里可以改进一步,在每个应用系统中也维护一份tickets,验证时,首先到本系统中验证,如果不存在,再远程到认证系统进行验证,但这也增加了应用系统的代码量。本文完,如果有什么问题,欢迎讨论。
           本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/20545513,转载请注明。

    展开全文
  • 单点登录与单点注销

    千次阅读 2018-02-05 15:22:59
    前言:  单点登录的原理,请参见:... Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分。  
  • smart-sso单点登录(一):简介

    万次阅读 多人点赞 2017-01-06 17:30:59
    开源地址 ...QQ交流群:454343484(群内含各种工具和文档下载) ...Java单点登录权限系统(二)—项目部署 简述 Smart定位用当下最流行的SSM(SpringMVC + Spring + Mybatis)技术,为您构建...
  • 单点登录CAS使用记(六):单点登出、单点注销 单点登出基本上没有啥配置 直接在原来logout的时候,重定向到Cas-Server的logout方法 @RequestSecurity @RequestMapping(value = "loginout", ...
  • SSO单点登录

    千人学习 2017-01-01 20:34:17
    本课程主要讲解单点登录在集群开发的作用,以及讲解了https协议的操作特点,同时利用openssl实现了证书签发与https单向、双向认证的实现。 同时本课程还讲解了CAS的使用,以及各种常用配置,同时讲解了如何将Shiro...
  • 单点登录

    千次阅读 2020-02-26 19:29:45
    Shiro 1.2 开始提供了 Jasig CAS 单点登录的支持,单点登录主要用于多系统集成,即在多个 系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多 次登录。此处我们使用 Jasig ...
  • CAS单点登录(十一)——单点退出

    千次阅读 2019-04-07 15:45:29
    在前面我们讲解了CAS的单点登录客户端接入,对于CAS的登录有了更清楚的了解,今天我们讲解一下在CAS中的单点退出问题。 首先我们要明白单点退出(单点注销)与注销的区别: 其实官方文档也给我们详细的解释了: 注销:...
  • 单点登录说明

    千次阅读 2020-03-13 09:20:02
    单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1、登录  相比于单系统登录,sso需要一个独立的...
  • 单点登录测试点

    千次阅读 2017-12-15 22:29:00
    单点登录全称Single Sign On(简称SSO),是指是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,包括单点登录与单点注销两部分,是目前比较流行的企业业务整合的解决方案之一。 这次系统...
  • 基础面试1:单点登录 vs 多点登录

    万次阅读 2020-11-04 21:09:39
    原来做过SSO单点登录,但是在某次面试过程中,面试官问到“多点登录”当时没有回答出,遂记录之; SSO(单点登录)的概念:在一个多系统共存的环境下,用户在一处登录后,就不用再其他系统中登录,也就是用户的一次...
  • 单点故障

    千次阅读 2017-12-19 19:27:33
    单点故障   清水大王 关注 2015.03.30 08:14* 字数 1253 阅读 3212评论 1喜欢 4 今天我们来说说单点故障,综合各方观点,百花齐放。 一、 单点故障 一方面 用户现状:核心系统的应用...
  • 单点登录(Single Sign On),简称为 SSO,SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 2. 单点登陆的技术实现机制 单点登录的机制也一样,如下图所示,当用户第一次...
  • CAS单点登录-单点登出/退出/注销(十二)

    万次阅读 热门讨论 2017-10-14 14:16:28
    CAS单点登录-单点登出/退出/注销(十二) 据说cas3.x开始支持单点注销,但我们目前讲的是5.1.x,当然我们加入了单点登录,一般来说都需要单点注销的,让个子系统支持单点注销需要做一些工作 本章目标 ...
  • sso单点登录实现

    千次阅读 2018-12-13 18:22:22
    一、sso单点登录原理 单点登录全称Single Sign On(简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 结合本项目案例,画了下SSO单点...
  • 单点接地和多点接地

    千次阅读 2018-12-02 15:45:55
    有三种基本的信号接地方式:浮地、单点接地、多点接地。 1 浮地 目的:使电路或设备与公共地线可能引起环流的公共导线隔离起来,浮地还使不同电位的电路之间配合变得容易。 缺点:容易出现静电积累引起强烈的...
  • 单点测试与多点测试

    千次阅读 2019-05-23 17:05:55
    PAT是单点测试,即输入一组测试用例即可输出结果, 而Codeup是多点测试,即输入所有测试用例后才会输出所有输出结果。 在这里写两个最简单的a+b求和小程序来说明二者的区别: 单点测试: int main(){ int a,b; ...
  • 单点登录请求流程

    千次阅读 2020-06-08 11:55:19
    下面是单点登录具体参数请求实现流程: 登录: 1、访问系统A:http://www.system.a.com 2、获取用户信息:post http://www.system.a.com/api/activity/center/getCurrentUser 3、退出登录:post ...
  • cas5.3.2单点登录-单点登出(十一)

    千次阅读 热门讨论 2018-09-04 11:20:27
    原文地址,转载请注明出处:&amp;amp;nbsp;...amp;amp;nbsp;&amp;...既然有单点登录,肯定就要有登出,之前的整合都是只针对了登录,对登出并没有关注,今天我们就来讲讲登出。...关于单点登出原理,参考该博客:
  • OAuth2.0 原理流程及其单点登录和权限控制

    万次阅读 多人点赞 2018-07-26 07:21:58
    单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清 OAuth2.0 实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。 作者:王克锋 出处:...
  • 数据库单点与Nginx单点提高可用性

    千次阅读 2016-09-01 14:51:50
    回答:单点master的设计,会大大简化系统设计,何况有时候避免不了单点   在哪些场景中会存在单点?先来看一下一个典型互联网高可用架构。 典型互联网高可用架构: (1)客户端层,这一层是浏览器...

空空如也

1 2 3 4 5 ... 20
收藏数 128,769
精华内容 51,507
关键字:

单点