精华内容
下载资源
问答
  • 什么是单点登录?单点登录的三种实现方式

    万次阅读 多人点赞 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

    展开全文
  • 单点登录(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是否有效,是有效的我才能让这个用户访问。
    展开全文
  • 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

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

     

    展开全文
  • CAS单点登录(十一)——单点退出

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

    在前面我们讲解了CAS的单点登录客户端接入,对于CAS的登录有了更清楚的了解,今天我们讲解一下在CAS中的单点退出问题。

    首先我们要明白单点退出(单点注销)与注销的区别:

    其实官方文档也给我们详细的解释了:

    注销:

     应用程序注销 - 结束单个应用程序会话
     CAS注销 - 结束CAS SSO会话
    

    请注意,在简单的情况下,每种情况下的注销操作对另一种情况都没有影响。

    而单点注销(SLO):

    当CAS配置为SLO时,它会尝试向SSO会话期间请求对CAS进行身份验证的每个应用程序发送注销消息。CAS旨在支持单点注销:这意味着除了自己的SSO会话之外,它还能够使客户端应用程序会话无效。

    对应CAS单点退出的流程原理可以查看CAS单点登录(一)——初识SSO当时在文章中也有讲解。

    slo

    同样的我们再来分析一下具体的流程:

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

    第5条中就详细分析了,当多个系统接入到CAS中时,单点退出时各注册系统接收SSO认证中心的注销请求,销毁局部会话。

    默认CAS单点退出(单点注销)是开启的,我们可以手动配置关闭或启用。

    ##
    # Single Logout配置
    #
    cas.slo.disabled=false
    cas.slo.asynchronous=true
    

    CAS单点注销主要支持下面两种方式:

    1、Back Channel

    CAS服务端直接向各服务客户端发送HTTP POST消息。这是向服务执行通知的传统方式。

    2、Front Channel

    CAS 通过一个异步的AJAX方式的GET请求,通过JSONP去验证各客户端服务,来使得各客户端的session无效。

    注意:该方式不一定适用所有客户端,必须要确保客户端支持该方式。

    CAS单点注销请求默认是在后台通过logoutType的属性配置好了的,默认为LogoutType.BACK_CHANNEL。

    单个服务配置单点注销:

    使用CAS注册的应用程序可以选择通过服务管理组件单独控制单个注销行为。服务注册表中的每个注册服务都将包含描述如何提交注销请求的配置。此行为通过logoutType属性进行控制,该属性允许指定是应通过后/前通道提交注销请求还是为此应用程序关闭注销请求。关闭注销请求可以将logoutType设置为NONE。

    {
      "@class" : "org.apereo.cas.services.RegexRegisteredService",
      "serviceId" : "^(https|imaps|http)://.*",
      "name" : "web",
      "id" : 10000001,
      "evaluationOrder" : 10,
      "accessStrategy" : {
        "@class" : "org.apereo.cas.services.DefaultRegisteredServiceAccessStrategy",
        "enabled" : true,
        "ssoEnabled" : true
      },
      "attributeReleasePolicy": {
        "@class": "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
      },
      "theme": "anumbrella",
      "logoutType" : "BACK_CHANNEL"
    }
    

    注销请求的请求路径配置,我们可以为每个服务配置请求路径,这样实现了更大的灵活性。

    {
      "@class" : "org.apereo.cas.services.RegexRegisteredService",
      "serviceId" : "^(https|imaps|http)://.*",
      "name" : "web",
      "id" : 10000001,
      "evaluationOrder" : 10,
      "accessStrategy" : {
        "@class" : "org.apereo.cas.services.DefaultRegisteredServiceAccessStrategy",
        "enabled" : true,
        "ssoEnabled" : true
      },
      "attributeReleasePolicy": {
        "@class": "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
      },
      "theme": "anumbrella",
      "logoutType" : "BACK_CHANNEL",
      "logoutUrl" : "https://client.anumbrella.net/logout"
    }
    
    

    我们依然使用前面的client-demo来讲解CAS单点注销,注意:在CAS 5.3.x版本退出加上service参数,不会自动跳转,需要在application.properties中配置一下。

    ##
    # Logout配置
    #
    cas.logout.followServiceRedirects=true
    

    我们client-demo的控制器中添加service参数测试:

      @GetMapping("/logout")
        public String logout(HttpSession session){
            session.removeAttribute(WebSecurityConfig.SESSION_KEY);
            return "redirect:https://sso.anumbrella.net:8443/cas/logout?service=https://client.anumbrella.net:9443/";
        }
    
    

    当我们主动退出后,自动跳转到登录页面。

    我们启动一个CAS客户端服务cas-management,在里面可以查看到CAS退出的相关配置。

    options

    options2

    这里我们将logoutUrl设置为http://172.16.67.230:8000/logout,具体地址为我本机调试IP,通过MAC终端调试工具 nc netcat来监听端口8000,服务端发送给我们的被动退出请求,方法为POST。

    sudo nc -l 0.0.0.0 8000
    

    当然还可以使用Wireshark来捕获服务端发送给我们请求,注意:Wireshark抓取数据包的时候发现只能抓取别的机器上的数据包,如果是本机的服务则发现好像抓不到。需要进行一定的配置才行,所以这里我使用的是nc netcat 工具。

    nc
    目前我们启动了两个客户端,一个服务端。我们点击client-demo注销。

    在服务端日志中我们发现,发送了2次请求。

    logout

    在命令端我们接收到服务端的POST请求。

    logout
    然后我们便可以根据logoutRequst请求的参数中去销毁各个服务端的session,一般情况是session的键值对,键为st票据,拿到键我们就能删除具体的session。当然不同的客户端接入情况不一样,具体看保存session时是如何做的。

    比如上面的logoutRequst的数据形式如下:我们拿到的就是ST-21-qK6bcCxu4iJZBBGtG0MtsNsgJ40anumbrelladeiMac

    <samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="LR-20-gJ8SYdbM4Ycm-xG3Dve-p3qA" Version="2.0" IssueInstant="2019-04-07T15:40:02Z">
      <saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@NOT_USED@</saml:NameID>
      <samlp:SessionIndex>ST-21-qK6bcCxu4iJZBBGtG0MtsNsgJ40anumbrelladeiMac</samlp:SessionIndex>
    </samlp:LogoutRequest>
    

    这里我只是简单演示了一下退出服务端发送的请求,如果我们CAS系统接入很多客户端,具体客户端在不同的地址,我们就可以配置自己相应的logoutUrl,然后在被动退出时在POST监听地址中销毁掉session即可。

    代码实例:Chapter10

    参考

    展开全文
  • 单点登录

    万次阅读 2018-01-19 00:57:04
    一、单点登录的概念与功能 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录了其中一个系统,就可以访问其他相关系统,而不用进行身份验证登录。即用户只要登陆系统一次,该用户的身份...
  • 单点登录说明

    千次阅读 2020-03-13 09:20:02
    单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1、登录  相比于单系统登录,sso需要一个独立的...
  • 单点登录CAS使用记(六):单点登出、单点注销 单点登出基本上没有啥配置 直接在原来logout的时候,重定向到Cas-Server的logout方法 @RequestSecurity @RequestMapping(value = "loginout", ...
  • CAS单点登录-单点登出/退出/注销(十二)

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

    千次阅读 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 ...
  • SSO单点登录

    千次阅读 热门讨论 2016-08-13 22:42:50
    最近接触单点登录相关的知识,主要是研究学习了一些cas-server和cas-client相关的知识,接下来就把自己学习到的资料大体整理一下吧,主要是以博客链接的形式把。一、单点登录相关知识:单点登录知识 ...
  • 完全跨域的单点登录

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

    千次下载 热门讨论 2015-03-02 10:23:50
    cas单点登录的例子程序,运行见说明
  • CAS 单点登录之 单点登出(SLO)

    千次阅读 2016-10-28 17:24:19
    最近刚刚接过来公司的单点登录,发现网上对单点登录的介绍还是蛮多了,不论是使用webflow的传统方式交互,还是使用流行的restful接口方式认证,但是对登出的介绍却不多,而且内容大多雷同,所有打算将单点登出在这里...
  • smart-sso单点登录(一):简介

    万次阅读 多人点赞 2017-01-06 17:30:59
    开源地址 ...QQ交流群:454343484(群内含各种工具和文档下载) ...Java单点登录权限系统(二)—项目部署 简述 Smart定位用当下最流行的SSM(SpringMVC + Spring + Mybatis)技术,为您构建...
  • OAuth2.0 原理流程及其单点登录和权限控制

    万次阅读 多人点赞 2018-07-26 07:21:58
    单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清 OAuth2.0 实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。 作者:王克锋 出处:...
  • 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 很早期的公司,一家公司可能只有一...
  • 单点登录方案实战

    千次阅读 2019-02-20 13:53:14
    单点登录先介绍下:oauth2与单点登陆的区别session-cookie机制session共享方式,实现的单点登陆使用场景实现方法Session共享方式的限制顶级域名不一样的网站怎么办?这时候就需要CAS登场了cas单点登陆方案 先介绍下...
  • 单点测试与多点测试

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

    万次阅读 多人点赞 2018-08-26 20:23:28
    CAS(Center Authentication Service)是耶鲁大学研究的一款开源的单点登录项目,主要为web项目提供单点登录实现,属于Web SSO。 待续…,PS:找时间继续写… 单点登录实现方式: 单点登录的三...
  • 什么是单点登录(原理与实现简介)

    万次阅读 多人点赞 2019-06-12 11:15:30
    一、系统登录机制 1、http无状态协议  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次...
  • CAS单点登录四-单点登出

    千次阅读 2016-04-19 14:58:30
    实现最基本的单点登出只需在client处的web.xml中加入一个过滤器和一个监听器 &lt;listener&gt; &lt;listener-class&gt;org.jasig.cas.client.session.SingleSignOutHttpSessionListener&lt;/...
  • 单点登录教程(三)单点注销流程分析

    千次阅读 2018-06-22 14:27:16
    一、前言单点登录自然也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁,用下面的图来说明:步骤分析:1.用户在CRM系统中点击注销按钮.会重定向到统一认证中心的注销方法2.统一认证中心接受到注销请求...
  • 基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo 作者:家辉,日期:2017-08-08 CSDN博客: http://blog.csdn.net/gobitan 摘要:经过对大量第三方单点登录系统的调研,发现Apereo的CAS是做得最好的,因此,本系列...
  • 单点故障

    千次阅读 2017-12-19 19:27:33
    单点故障   清水大王 关注 2015.03.30 08:14* 字数 1253 阅读 3212评论 1喜欢 4 今天我们来说说单点故障,综合各方观点,百花齐放。 一、 单点故障 一方面 用户现状:核心系统的应用...
  • java实现完全跨域SSO单点登录

    万次阅读 多人点赞 2018-08-16 16:33:01
    SSO(Single Sign On)单点登录是实现多个系统之间统一登录的验证系统,简单来说就是:有A,B,C三个系统,在A处登录过后,再访问B系统,B系统就已经处于了登录状态,C系统也是一样。举个生活中栗子:你同时打开天猫...
  • PCB设计中单接地和多点接地

    千次阅读 2019-07-13 20:29:01
    PCB中有三种基本的信号接地方式:浮地、单点接地、多点接地。 1.浮地 目的:使电路或设备与公共地线可能引起环流的公共导线隔离起来,浮地还使不同电位的电路之间配合变得容易。 缺点:容易出现静电积累引起强烈的...
  • CAS单点登录-微信企业号登录(二十)背景在企业号得开发中,无法避免登录的问题,多个系统前端交互可能会设计到单点登录,若多系统已单点登录,那sso如何支持呢?概述查看企业号开发者接口文档我们看完文档后总结...
  • 单点登录之CAS原理和实现

    万次阅读 多人点赞 2017-11-14 21:46:44
    1.开源单点登录系统CAS入门1.1 什么是单点登录单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的...
  • java 单点登录源代码

    热门讨论 2014-11-10 15:48:44
    java web单点登录源代码,一个验证系统,两个测试系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,844,658
精华内容 1,137,863
关键字:

单点