SAML 2.0 Auth Request的目的/用途是什么?

时间:2013-07-18 22:53:10

标签: single-sign-on saml-2.0 opensaml

我已经查看了类似的问题并阅读了几篇关于SAML 2.0的文章,但我仍然无法理解SAML Auth请求。

我已经实施了几个基于SAML的SSO解决方案,我的公司是IdP(身份提供商)。我们一直通过SAML响应将用户从我们的网站发送给第三方:

  1. 用户登录我们的网站。
  2. 用户点击我们网站上的特殊链接。
  3. 我们准备SAML Response XML。
  4. 我们使用私钥对其进行电子签名。
  5. 将其作为HTML表单中的隐藏字段以及“RelayState”参数发送回用户的浏览器。
  6. 我们将此表单自动发布到SP(服务提供商)网址。
  7. 就是这样。

    SAML 2.0文章(例如,Wikipedia overview article on SAML 2.0)表明我们错过了一个步骤:“SAML Auth Request”。似乎SP需要首先向IdP(我们)发送“SAML身份验证请求”来启动SSO,然后我们应该使用SAML响应来响应它。

    SP如何决定何时初始化SSO? SP甚至不知道我们会以自己的方式发送用户。用户当前登录到我们的网站,用户何时点击该链接,这将在SP网站中“神奇地”验证他们。

    谢谢!

    P上。 S.我知道SAML 2.0是“既定的行业标准”,但我使用它越多 - 我觉得它就越是矫枉过正。由于其复杂性,存在大量不同的不兼容实现(根据我的经验)。每次我们与新合作伙伴进行SSO时 - 这都是一种痛苦。大公司正在大量出售“开箱即用”的SAML解决方案,没有人知道如何正确配置和排除故障,因此人们几乎不得不为昂贵的承包商支付费用。公司希望能够聘请低薪员工来支持那些过于复杂的SAML解决方案。在与第三方设置SSO时,我经常会与那些不知道它是什么的人打交道,他们只是接受了点击按钮的培训,并通过电话阅读了神秘的错误消息。这完全归功于SAML过度设计。但是嘿 - 有一个好的方面:我得到了真正的报酬,因为我对SAML的了解非常好,至少可以让它发挥作用。 :)

1 个答案:

答案 0 :(得分:4)

您正在使用规范中指定的所谓的未经请求的响应,因此您不会“错过任何一步”。它在SAML profile spec

中的4.1.5中指定

正常用例是用户尝试登录SP,SP将用户重定向到IDP进行身份验证。

您可以选择的一个实现是您的门户网站只是将用户重定向到SP。如果SP检测到用户没有会话,则SP开始针对IDP的正常SSO