sso通信超时啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sso通信超时啥意思?相关的知识,希望对你有一定的参考价值。

简介

SSO是单点登录的简称,常用的SSO的协议有两种,分别是SAML和OAuth2。本文将会介绍两种协议的不同之处,从而让读者对这两种协议有更加深入的理解。

SAML

SAML的全称是Security Assertion Markup Language, 是由OASIS制定的一套基于XML格式的开放标准,用在身份提供者(IdP)和服务提供者 (SP)之间交换身份验证和授权数据。

SAML的一个非常重要的应用就是基于Web的单点登录(SSO)。

在SAML协议中定义了三个角色,分别是principal:代表主体通常表示人类用户。identity provider (IdP)身份提供者和service provider (SP)服务提供者。

IdP的作用就是进行身份认证,并且将用户的认证信息和授权信息传递给服务提供者。

SP的作用就是进行用户认证信息的验证,并且授权用户访问指定的资源信息。

接下来,我们通过一个用SAML进行SSO认证的流程图,来分析一下SAML是怎么工作的。

上图中User Agent就是web浏览器,我们看一下如果用户想请求Service Provider的资源的时候,SAML协议是怎么处理的。


    用户通过User Agent请求Service Provider,比如:

    http://sp.flydean.com/myresource

    SP将会对该资源进行相应的安全检查,如果发现已经有一个有效的安全上下文的话,SP将会跳过2-7步,直接进入第8步。

    如果在第一步的时候,SP并没有找到相应的有效安全上下文的话,则会生成对应的SAMLRequest,并将User Agent重定向到IdP:

    302 Redirect
    Location: https://idp.flydean.com/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token

    RelayState是SP维护的一个状态信息,主要用来防止CSRF攻击。

    其中这个SAMLRequest是用Base64编码的 ,下面是一个samlp:AuthnRequest的例子:

    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="aaf23196-1773-2113-474a-fe114412ab72"
    Version="2.0"
    IssueInstant="2020-09-05T09:21:59Z"
    AssertionConsumerServiceIndex="0"
    AttributeConsumingServiceIndex="0">
    https://sp.flydean.com/SAML2saml:Issuer>
    AllowCreate="true"
    Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
    samlp:AuthnRequest>

    为了安全起见,SAMLRequest还可以使用SP提供的签名key来进行签名。

    User agent将会发送一个get请求到IdP的SSO server :

    GET /SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token HTTP/1.1
    Host: idp.flydean.com

    IdP收到这个AuthnRequest请求之后,将会进行安全验证,如果是合法的AuthnRequest,那么将会展示登录界面。

    用户可以输入用户名密码进行登录。登录成功之后,IdP将会返回一个Xhtml form:


    ...
    form>

    这个form中包含了SAMLResponse信息,SAMLResponse中包含了用户相关的信息。

    同样的SAMLResponse也是使用Base64进行编码过的 。

    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_2"
    InResponseTo="identifier_1"
    Version="2.0"
    IssueInstant="2020-09-05T09:22:05Z"
    Destination="https://sp.flydean.com/SAML2/SSO/POST">
    https://idp.flydean.com/SAML2saml:Issuer>
    Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    samlp:Status>
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_3"
    Version="2.0"
    IssueInstant="2020-09-05T09:22:05Z">
    https://idp.flydean.com/SAML2saml:Issuer>

    我们可以看到samlp:Response中包含有saml:Assertion信息。

    user agent 收到XHTML form之后将会提交该form给SP。

    SP中的assertion consumer service将会处理这个请求,创建相关的安全上下文,并将user agent重定向到要访问的资源页面。

    user agent再次请求SP资源。

    因为安全上下文已经创建完毕,SP可以直接返回相应的资源,不用再次到IdP进行认证。

    我们可以看到上面的所有的信息交换都是由前端浏览器来完成的,在SP和IdP之间不存在直接的通信。

    这种全部由前端来完成信息交换的方式好处就是协议流非常简单,所有的消息都是简单的GET或者POST请求。

    如果为了提高安全性,也可以使用引用消息。也就是说IdP返回的不是直接的SAML assertion,而是一个SAML assertion的引用。SP收到这个引用之后,可以从后台再去查询真实的SAML assertion,从而提高了安全性。

    SAML的缺点

    SAML协议是2005年制定的,在制定协议的时候基本上是针对于web应用程序来说的,但是那时候的web应用程序还是比较简单的,更别提对App的支持。

    SAML需要通过HTTP Redect和HTTP POST协议来传递用户信息,并且通常是通过HTML FORM的格式来进行数据的提交的。如果应用程序并不是web应用,比如说是一个手机App应用。

    这个手机APP应用的启动链接是 my-photos://authenticate , 但是手机app可能并不能获取到Http POST的body内容。他们只能够通过URL来进行参数的传递。

    这就意味着,在手机APP中不能够使用SAML。

    当然,要想工作也可以,不过需要进行一些改造。比如通过第三方应用对POST消息进行解析,然后将解析出来的SAMLRequest以URL参数的形式传递给APP。

    另一种方法就是使用OAuth2.

    OAuth2

    因为Oauth2是在2012年才产生的。所以并没有那么多的使用限制。我们可以在不同的场合中使用OAuth2。

    我们先来看一下OAuth2中授权的流程图:

    一般来说OAuth2中有4个角色。

    resource owner:代表的是资源的所有者,可以通过提供用户名密码或者其他方式来进行授权。通常来是一个人。

    resource server:代表的是最终需要访问到资源的服务器。比如github授权之后获取到的用户信息。

    client:用来替代resource owner来进行交互的客户端。

    authorization server:用来进行授权的服务器,可以生成相应的Access Token。

    整个流程是这样的:

    Client向resource owner发起一个授权请求,resource owner输入相应的认证信息,将authorization grant返回给client。

    client再将获取到的authorization grant请求授权服务器,并返回access token。

    client然后就可以拿着这个access token去请求resource server,最后获取到受限资源。

    OAuth2的缺点

    OAuth2并没有指定Resource Server怎么和Authorization Server进行交互。也没有规定返回用户信息的内容和格式。这些都需要实现方自己去决定。

    OAuth2默认是在HTTPS环境下工作的,所以并没有约定信息的加密方式。我们需要自己去实现。

    最后,OAuth2是一个授权协议,而不是认证协议。对于这个问题,其实我们可以考虑使用OpenID Connect协议。因为OpenID Connect就是基于OAuth2实现的,并且添加了认证协议。

    OpenID Connect简称为OIDC,已成为Internet上单点登录和身份管理的通用标准。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。

    OAuth2实际上只做了授权,而OpenID Connect在授权的基础上又加上了认证。

    OIDC的优点是:简单的基于JSON的身份令牌(JWT),并且完全兼容OAuth2协议。

    两者的对比

    在SAML协议中,SAML token中已经包含了用户身份信息,但是在OAuth2,在拿到token之后,需要额外再做一次对该token的校验。

    但是另一方面,OAuth2因为需要再做一次认证,所以可以在 Authorization Server 端对token进行无效处理。

    CAS简介

    做过SSO的应该都听说过CAS。CAS的全称是Central Authentication Service,是一个企业级的开源的SSO认证框架。

    CAS内部集成了CAS1,2,3,SAML1,2,OAuth2,OpenID和OpenID Connect协议,非常的强大。我们会在后面的文章中介绍CAS的使用。

    xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...ds:Signature>
    Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
    3f7b3dcf-1674-4ecd-92c8-1544f346baf8
    saml:NameID>
    Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    InResponseTo="identifier_1"
    Recipient="https://sp.flydean.com/SAML2/SSO/POST"
    NotOnOrAfter="2020-09-05T09:27:05Z"/>
    saml:SubjectConfirmation>
    saml:Subject>
    NotBefore="2020-09-05T09:17:05Z"
    NotOnOrAfter="2020-09-05T09:27:05Z">
    https://sp.flydean.com/SAML2saml:Audience>
    saml:AudienceRestriction>
    saml:Conditions>
    AuthnInstant="2020-09-05T09:22:00Z"
    SessionIndex="identifier_3">
    urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
    saml:AuthnContextClassRef>
    saml:AuthnContext>
    saml:AuthnStatement>
    saml:Assertion>
    samlp:Response>

参考技术A sso通信超时意思是网络通信超时,网络连接不上。 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录 参考技术B 回答

解决方法如下:1.首先请您检查下防火墙设置,建议暂时关闭防火墙;2.可能是由于qq系统调整引起的,所以会造成某些号段不能登陆,建议您可以稍后再进行尝试;3.尝试使用选择登陆服务器(目前有三种模式,分别是udp模式、tcp模式和会员vip模式)4.可能是您所使用的代理已经失效,更换代理或者不使用代理,即可正常登陆。

sso通信超时意思是网络通信超时,网络连接不上。 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的。

请问您还有其他问题吗?很高兴继续为您解答~

以上是我的全部回复,希望能够帮助到您,祝您生活愉快~

记得赞哦!感谢支持!

提问

请问在手机上如何操作?

回答

1.点击设置图标,进入设置中心。2.向下滑动选择“更多应用”,找到出现问题的应用并点击。3.点击下方的“清除数据”,弹出的对话框点击“清除全部数据”。如果依然没有解决,点击“检查网络设置”。

请问您还有其他问题吗?很高兴继续为您解答~

以上是我的全部回复,希望能够帮助到您,祝您生活愉快~

记得赞哦!感谢支持!

网络超时啥意思?

参考技术A 问题一:网络超时是什么意思? 你好,网络超时就是连接网络的时间超过正常时间,是网络连接不上的一种说法,希望能够帮到你,请采纳,你的支持是我前进的动力!

问题二:网络连接超时是什么意思?该怎么办 网速慢,去好点的网吧网络就快了
记得采纳啊

问题三:手机网络连接超时是什么意思? 手机网络连接超时是超过一定时间不能连接到服务器就会出现这个提示,通常在服务器繁忙或者本地信号不好的情况下会出现。
所在的地方信号不好,或者手机互联网接入点设置有误,重新开机如果不行,检查接入点设置。

问题四:为什么网络,就是上不了呢?总说连接超时,什么意思? 不能上网试下下面几个方法:
1:笔记本看下无线wifi打开没有一般wifi快捷键Ctrl+F5.
2:如果连接的网线看下连接电脑的连接处是不是亮的,如果是亮的说明正常运行中。
3:右键网上邻居或者是网络属性网络连接看下是不是被禁用网络了。
4:重启电脑试试
5:看下楼道供电系统是否正常供电(因为楼道供电一般就是是网络供电)
6: 打电话问电信提供你的账号问下电信方是不是正常状态
7:手机不能上网看看wifi是不是正常运行,仔细核对你输入的密码跟路由器密码是不是相同的。
8:手机不能上移动网络,可以打电话到电信公司问问什么情况,或者重新启动下手机试试,不要忘记最简单的要把移动数据打开哦。

问题五:网络超时什么意思 如果是网络连接超时,愿意可能为: 1网络断开,不过经常显示无法连接 2网络阻塞,导致你不能在程序默认等待时间内得到回复数据包 3网络不稳定,网络无法完整传送服务器信息 4系统:系统资源过低,无法为程序提供足够的资源处理服务器信息 或你的本地PC跟另一个PC(大部分时候是SERVER)进行网络连接请求时,服务器没有多长时间没有给你回应,你的本地PC就会默认为连接超时,因为你的Pc一直处于等待服务器的回应,有回应就会进行下一步的流程。 超时,也就是time out.

问题六:连无线网时网络超时是什么意思 就是 信号不好 建议拔掉路由器然后重新插上试试 要是实在不行可以考虑欠费了

问题七:网络请求超时是什么意思? ping命令请求超时分析:未连接到服务器,这是因为系统繁忙,网速慢,你可能会导致登陆超时情况的计算机系统资源不足!
(1)对方已关机,或者网络没有足够的地址
(2)另一方是不符合其自身的同一个网段,通过路由无法找到当然对方,但有时对方确实存在,没有超时也返回信息。
(3)对方确实存在,但设置ICMP数据包过滤(比如防火墙设置)。
(4)设置错误
在正常情况下的IP地址,主机应该有一个网卡,一个IP地址,或者多张卡,多个IP地址(该地址必须在一个不同的IP子网净)。但是,如果一台电脑“拨号网络适配器”(软卡的相当值)作TCP / IP设置,并设置一个局域网的IP地址在同一子网中的IP地址,这样它才会出现在IP层协议,哪台主机有两个不同的接口在同一网段。从平当其他机器,就会有这样的问题主机:
A.主机不知道数据包发送到网络接口,因为有两个网络接口都连接到同一个网段。
B.主机不知道哪个地址作为数据包的源地址。因此,从大型机到平其他机器,IP层协议会无法处理,超时后,
平会给出一个“无应答超时”的错误信息提示。但是,当其他主机Ping本主机时,请求包从特定的网卡,ICMP只是简单的目的,源地址互换,并可以改变一些迹象,可以成功地发出ICMP响应报文,其他主机也就能平安顺利过关这台机器。
2.Destination主机不可达
(1)对方,他们不是同一个网段,而他还没有默认的路由设置,如在上面一台机器的例子不设置默认的路由,运行平192.168.0.1.4将“目标主机无法访问”。
(2)网线出故障
的这里要说明“目标主机不可达”和“超时”之间的区别,如果路由器的路由表后,已达到路由的目标,而目标因为其他原因无法到达,这时候会出现“超时”,即使路由表,路由没有达到目标,那就会出现“目标主机不可达”。
3.Bad IP地址
此消息表明,你可能没有连接到DNS服务器,它无法解析的IP地址,也可以是IP地址不存在。
4.Source淬火收到
这个信息比较特殊,它出现的机会不大。它代表了服务器的另一半正忙或没有响应。
5.Unknown主机 - 未知的主机
此错误消息表示远程主机名不能是一个域名服务器(DNS)解析成IP地址。域名服务器故障可能出现故障,或者名称不正确,或系统与远程主机的网络管理员之间的通信链路失败。
6.No的答案 - 没有任何反应
这种故障说明本地系统有一个路线通往中央控制台,但它并不接收发送到中央主机的任何信息。失败可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;路由器在本地或中心没有工作;通信线路故障;中央主机路由问题存在。
7.Ping 127.0.0.1:127.0.0.1本地环路地址
如果该地址无法PING通,然后在本地计算机的TCP / IP协议不能正常工作。
8.no狂胜主办:网卡工作不正常。
9.tran *** it失败,错误代码:10043网卡驱动不正常。
10.unknown主机名:DNS没有正确配置。 >

问题八:响应超时和网络超时是什么意思 你的客户端(电脑、手机等)通过网络向服务器发出一个请求,在规定的时间里没能收到服务器的回应(这个规定时间一般你不用关心,是个行内默认值),原因可能是你的网络故障或你所连接的服务器工作异常

问题九:网络连接超时,是什么意思啊 网络连接超时就是在程序默认的等待时间内没有得到服务器的响应。 网络连接超时可能的原因有: 1、网络断开,不过经常显示无法连接 2、网络阻塞,导致你不能在程序默认等待时间内得到回复数据包 3、网络不稳定,网络无法完整传送服务器信息 4、系...

以上是关于sso通信超时啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

网络请求超时是啥意思?

toastr.options 中的“超时”是啥意思

Java:连接请求超时是啥意思?超时就不再请求了?

交易通讯超时啥意思

“尝试获取功能数据时超时”是啥意思来自 iOS 应用程序?

token超时是啥意思 怎么解决