SP启动的SSO和IDP启动的SSO之间的差异


107

谁能向我解释SP发起的SSOIDP发起的SSO之间的主要区别是什么,包括与ADFS + OpenAM Federation一起实施单点登录的更好解决方案?


2
为任何对单一登录概念不
熟悉的

Answers:


72

在IDP Init SSO(未经请求的Web SSO)中,联合过程是由IDP向SP发送未经请求的SAML响应来启动的。在SP-Init中,SP生成一个AuthnRequest,作为联合过程中的第一步发送给IDP,然后IDP响应SAML响应。IMHO ADFSv2对SAML2.0 Web SSO SP-Init的支持比其对IDP-Init的支持要强:与3rd Party Fed产品集成(主要围绕对RelayState的支持),因此,如果您有选择的话,将希望使用SP-进行初始化,因为使用ADFSv2可能会使生活更轻松。

下面是从的PingFederate 8.0一些简单的SSO说明入门指南,你可以通过,可以帮助捅以及- https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html


81

IDP发起的SSO

从文件的PingFederate - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

在这种情况下,用户登录到IdP并尝试访问远程SP服务器上的资源。SAML声明通过HTTP POST传输到SP。

处理步骤:

  1. 用户已登录到IdP。
  2. 用户请求访问受保护的SP资源。该用户未登录到SP站点。
  3. 可选地,IdP从用户数据存储中检索属性。
  4. IdP的SSO服务将带有SAML响应的HTML表单返回到浏览器,其中包含身份验证断言和任何其他属性。浏览器会自动将HTML表单发布回SP。

SP发起的SSO

从文件的PingFederate - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

在这种情况下,用户尝试不登录而直接在SP网站上访问受保护的资源。该用户在SP站点上没有帐户,但是具有由第三方IdP管理的联合帐户。SP将身份验证请求发送到IdP。请求和返回的SAML断言都通过HTTP POST通过用户的浏览器发送。

处理步骤:

  1. 用户请求访问受保护的SP资源。该请求将重定向到联合服务器以处理身份验证。
  2. 联合身份验证服务器将HTML表单与SId请求一起从IdP发送回浏览器。HTML表单将自动发布到IdP的SSO服务。
  3. 如果用户尚未登录IdP站点,或者需要重新认证,则IdP要求提供凭据(例如,ID和密码),然后用户登录。
  4. 可以从用户数据存储中检索有关用户的其他信息,以将其包含在SAML响应中。(这些属性是作为IdP和SP之间的联盟协议的一部分预先确定的)

  5. IdP的SSO服务将带有SAML响应的HTML表单返回到浏览器,其中包含身份验证断言和任何其他属性。浏览器会自动将HTML表单发布回SP。注意: SAML规范要求对POST响应进行数字签名。

  6. (未显示)如果签名和声明有效,则SP将为用户建立一个会话,并将浏览器重定向到目标资源。


1
重新SP发起的SSO-上面的第3点表示:“如果用户尚未登录到IdP站点,或者需要重新验证,则IdP要求提供凭据(例如ID和密码),然后用户登录。” 系统如何确定用户是否登录到IdP站点?例如,它会生成Cookie吗?
Edwardo

1
@Edwardo您的假设是正确的。与IdP建立会话时,通常IdP会生成cookie来维护该会话。
jekennedy

我还有另一个问题stackoverflow.com/questions/43861315/…。你可以看看吗?
kawadhiya21年

49

SP发起的SSO

向用户开帐单:“嘿吉米,告诉我该报告”

SP吉米(Jimmy):“嘿,我不确定您是谁。我们在这里有一个程序,您可以先向IdP鲍勃(Bob)验证自己。我信任他。”

IdP的鲍勃:“我看到吉米把你送到这里了。请给我你的证书。”

向用户收费:“嗨,我是比尔。这是我的凭据。”

IdP的鲍勃:“嗨,比尔。你好像在退房。”

IdP的鲍勃:“嗨,吉米。比尔(Bill)结帐,这是有关他的其他信息。您可以从这里进行任何操作。”

SP吉米(Jimmy):“行,很酷。看起来比尔(Bill)也在我们的知名宾客名单中。我让比尔(Bill)进来。”

IdP发起的SSO

向用户开帐单:“嗨,鲍勃。我想去吉米的地方。那边的安全措施很严格。”

IdP的鲍勃:“嗨,吉米。我信任比尔。他结账了,这是有关他的其他信息。您可以从这里进行任何操作。”

SP吉米(Jimmy):“行,很酷。看起来比尔(Bill)也在我们的知名宾客名单中。我让比尔(Bill)进来。”


我在这里进行了更详细的介绍,但仍然保持简单:https : //jorgecolonconsulting.com/saml-sso-in-simple-terms/


33
我认为第二次对话是不对的。...相反,应该是:IdP:“嘿,这是有关Sal的一些信息,请让她进去” / SP:“好吧,我相信你,我会让她in”
Jeff Olson

4
第一次对话也不正确:在第一步中,SP尚不了解有关哪个用户的信息,只有在IdP时,用户才能登录并标识为“ Sal”
Allie

4
第一个对话应该是:SP:“嘿,您的ID在哪里?” IdP:“请稍等,我会检查一下。请让我看看您的ID。好,兄弟,让她进去,她叫Sal,现年21岁(可选)” SP:“帅哥,您真棒!嘿,来吧, !!”
Erdal G.

3
我认为这个答案不值得得到它的否决。它以一种创造性的方式回答了这个问题,也许不像某些人指出的那样准确,但是创造性却并非如此。
亚伦C

2
看到这种格式的正确答案将很有趣。我的目光注视着阅读有投票表决的答案,这种格式有助于非常迅速地掌握总体概念。我所掌握的知识不足以根据自己的评论自信地创建答案。
肖恩·康诺利
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.