我已经查看了类似的问题并阅读了几篇关于SAML 2.0的文章,但我仍然无法理解SAML Auth请求。
我已经实施了几个基于SAML的SSO解决方案,我的公司是IdP(身份提供商)。我们一直通过SAML响应将用户从我们的网站发送给第三方:
就是这样。
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的了解非常好,至少可以让它发挥作用。 :)
答案 0 :(得分:4)
您正在使用规范中指定的所谓的未经请求的响应,因此您不会“错过任何一步”。它在SAML profile spec
中的4.1.5中指定正常用例是用户尝试登录SP,SP将用户重定向到IDP进行身份验证。
您可以选择的一个实现是您的门户网站只是将用户重定向到SP。如果SP检测到用户没有会话,则SP开始针对IDP的正常SSO