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

任何人都可以向我解释SP发起的SSOIDP发起的SSO之间的主要区别是什么,包括与ADFS + OpenAM Federation联合实施单点login更好的解决scheme?

在IDP Init SSO(未经请求的Web SSO)中,联合进程由IDP发送主动SAML响应给SP。 在SP-Init中,SP生成一个AuthnRequest,作为联合进程的第一步发送给IDP,然后IDP响应一个SAML响应。 恕我直言,ADFSv2支持SAML2.0 Web SSO SP-Init比其IDP-Init支持更强:与第三方Fed产品集成(主要围绕对RelayState的支持),所以如果您有select,您可以使用SP- Init,因为使用ADFSv2可能会使生活更轻松。

以下是PingFederate 8.0入门指南中的一些简单的SSO说明,您可以通过这些说明来帮助您 – https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html

IDP启动SSO

来自PingFederate文档: – https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

在这种情况下,用户login到IdP并尝试访问远程SP服务器上的资源。 SAML断言通过HTTP POST传送给SP。

处理步骤:

  1. 用户已login到IdP。
  2. 用户请求访问受保护的SP资源。 用户没有login到SP站点。
  3. 可选地,IdP从用户数据存储中检索属性。
  4. IdP的SSO服务返回一个包含authentication断言和任何附加属性的SAML响应的HTML表单到浏览器。 浏览器自动将HTML表单发送回SP。

SP发起的SSO

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

在这种情况下,用户尝试直接访问受保护的SP网站上的资源而不login。 用户在SP站点上没有帐户,但有一个由第三方IdPpipe理的联合帐户。 SP向IdP发送authentication请求。 请求和返回的SAML断言都通过HTTP POST通过用户的浏览器发送。

处理步骤:

  1. 用户请求访问受保护的SP资源。 该请求被redirect到联合服务器以处理authentication。
  2. 联邦服务器使用来自IdP的SAMLauthentication请求向浏览器发回HTML表单。 HTML表单将自动发布到IdP的SSO服务。
  3. 如果用户尚未login到IdP站点或需要重新validation,则IdP会要求input凭据(例如,ID和密码),并且用户login。
  4. 可以从用户数据存储中检索关于用户的附加信息以包含在SAML响应中。 (这些属性是IdP和SP之间的联盟协议的一部分)

  5. IdP的SSO服务返回一个包含authentication断言和任何附加属性的SAML响应的HTML表单到浏览器。 浏览器自动将HTML表单发送回SP。 注: SAML规范要求POST响应进行数字签名。

  6. (未显示)如果签名和断言有效,则SP为用户build立一个会话并将浏览器redirect到目标资源。

SP发起的SSO

SP:“嘿,你认识萨尔?

IdP:“我呢?…哦,是的!是的,我知道萨尔”

SP:“好的,我会让她进去的。”

IdP发起的SSO

IdP:“嗨,萨尔告诉我你知道她”

SP:“我呢?…噢我是的,我会让她进去的。”