有人能为我解释一下SP启动的SSO和IDP启动的SSO之间的主要区别吗?同时,包括在与ADFS + OpenAM联合实现单点登录时哪种方法更好?
有人能为我解释一下SP启动的SSO和IDP启动的SSO之间的主要区别吗?同时,包括在与ADFS + OpenAM联合实现单点登录时哪种方法更好?
IDP发起的SSO
来自PingFederate文档:- https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html
在这种情况下,用户已登录到IdP,并尝试访问远程SP服务器上的资源。 SAML断言通过HTTP POST传输到SP。
处理步骤:
SP发起的SSO
来自PingFederate文档:- http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST
在这种情况下,用户尝试直接访问受保护的资源,而没有登录。用户没有SP站点上的帐户,但具有由第三方IdP管理的联合帐户。SP向IdP发送身份验证请求。请求和返回的SAML断言都通过用户的浏览器通过HTTP POST发送。
处理步骤:
可以从用户数据存储中检索有关用户的其他信息,以包含在SAML响应中。(这些属性作为IdP和SP之间联合协议的一部分预先确定)
IdP的SSO服务返回一个带有身份验证断言和任何其他属性的SAML响应的HTML表单给浏览器。浏览器会自动将HTML表单发布回SP。注意: SAML规范要求POST响应进行数字签名。
(未显示)如果签名和断言有效,则SP为用户建立会话并将浏览器重定向到目标资源。
用户Bill:“嘿Jimmy,给我看那份报告吧。”
服务提供商(SP)Jimmy:“嘿,我还不确定你是谁。我们这里有一个流程,你先到身份提供商Bob那里进行验证。我信任他。”
身份提供商(IdP)Bob:“我看到Jimmy把你送来了。请给我你的凭据。”
用户Bill:“嗨,我是Bill。这是我的凭据。”
身份提供商Bob:“嗨,Bill。看起来你是合法用户。”
身份提供商Bob:“嘿Jimmy,这个Bill是可信的,并且这里还有关于他的一些额外信息。你可以从这里开始做任何事情。”
服务提供商Jimmy:“好的,很酷。看起来Bill也在我们已知客人列表中。我会让Bill进入的。”
用户Bill:“嘿Bob,我想去Jimmy那里。那边安全性很高。”
身份提供商Bob:“嘿Jimmy,我信任Bill。他是可信的,并且这里还有关于他的一些额外信息。你可以从这里开始做任何事情。”
服务提供商Jimmy:“好的,很酷。看起来Bill也在我们已知客人列表中。我会让Bill进入的。”
详细内容可以在这里查看,但仍然保持简单:https://jorgecolonconsulting.com/saml-sso-in-simple-terms/。
https://support.procore.com/faq/what-is-the-difference-between-sp-and-idp-initiated-sso
这只是一个高层次的概述,还有更多内容。
Procore支持SP和IdP启动的SSO:
身份提供者启动(IdP-initiated)SSO。使用此选项,您的终端用户必须登录到您的身份提供者的SSO页面(例如Okta、OneLogin或Microsoft Azure AD),然后单击图标以登录并打开Procore Web应用程序。要配置此解决方案,请参见为Microsoft Azure AD配置IdP-Initiated SSO,为IdP-Initated Okta SSO配置Procore,或为OneLogin配置IdP-Initiated SSO。 或者 服务提供商启动(SP-initiated)SSO。称为Procore-initiated SSO,此选项使您的终端用户能够登录Procore登录页面,然后发送授权请求到身份提供者(例如Okta、OneLogin或Microsoft Azure AD)。一旦IdP验证了用户的身份,用户就可以登录Procore。要配置此解决方案,请参见为Microsoft Azure Active Directory配置Procore-Initiated SSO,为Okta配置Procore-Initiated SSO,或为OneLogin配置Procore-Initiated SSO。