SP启动的SSO与IDP启动SSO之间的差异
任何人都可以向我解释SP发起的SSO和IDP发起的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。
处理步骤:
- 用户已login到IdP。
- 用户请求访问受保护的SP资源。 用户没有login到SP站点。
- 可选地,IdP从用户数据存储中检索属性。
- 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通过用户的浏览器发送。
处理步骤:
- 用户请求访问受保护的SP资源。 该请求被redirect到联合服务器以处理authentication。
- 联邦服务器使用来自IdP的SAMLauthentication请求向浏览器发回HTML表单。 HTML表单将自动发布到IdP的SSO服务。
- 如果用户尚未login到IdP站点或需要重新validation,则IdP会要求input凭据(例如,ID和密码),并且用户login。
-
可以从用户数据存储中检索关于用户的附加信息以包含在SAML响应中。 (这些属性是IdP和SP之间的联盟协议的一部分)
-
IdP的SSO服务返回一个包含authentication断言和任何附加属性的SAML响应的HTML表单到浏览器。 浏览器自动将HTML表单发送回SP。 注: SAML规范要求POST响应进行数字签名。
-
(未显示)如果签名和断言有效,则SP为用户build立一个会话并将浏览器redirect到目标资源。
SP发起的SSO
SP:“嘿,你认识萨尔?
IdP:“我呢?…哦,是的!是的,我知道萨尔”
SP:“好的,我会让她进去的。”
IdP发起的SSO
IdP:“嗨,萨尔告诉我你知道她”
SP:“我呢?…噢我是的,我会让她进去的。”