谁能向我解释SP 发起的 SSO和IDP 发起的 SSO之间的主要区别是什么,包括哪个是结合 ADFS + OpenAM 联合实施单点登录的更好解决方案?
4 回答
IDP 发起的 SSO
来自 PingFederate 文档:- https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html
在这种情况下,用户登录到 IdP 并尝试访问远程 SP 服务器上的资源。SAML 断言通过 HTTP POST 传输到 SP。
处理步骤:
- 用户已登录到 IdP。
- 用户请求访问受保护的 SP 资源。用户未登录到 SP 站点。
- 可选地,IdP 从用户数据存储中检索属性。
- IdP 的 SSO 服务向浏览器返回一个 HTML 表单,其中包含一个 SAML 响应,其中包含身份验证断言和任何其他属性。浏览器自动将 HTML 表单发送回 SP。
SP 发起的 SSO
来自 PingFederate 文档:- http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST
在这种情况下,用户尝试在未登录的情况下直接访问 SP 网站上的受保护资源。用户在 SP 站点上没有帐户,但有一个由第三方 IdP 管理的联合帐户。SP 向 IdP 发送身份验证请求。请求和返回的 SAML 断言都通过用户的浏览器通过 HTTP POST 发送。
处理步骤:
- 用户请求访问受保护的 SP 资源。该请求被重定向到联合服务器以处理身份验证。
- 联合服务器向浏览器发送一个 HTML 表单,其中包含来自 IdP 的身份验证请求。HTML 表单会自动发布到 IdP 的 SSO 服务。
- 如果用户尚未登录到 IdP 站点,或者如果需要重新验证,则 IdP 会要求提供凭据(例如,ID 和密码)并且用户登录。
可以从用户数据存储中检索有关用户的附加信息以包含在 SAML 响应中。(这些属性是作为 IdP 和 SP 之间的联合协议的一部分预先确定的)
IdP 的 SSO 服务向浏览器返回一个 HTML 表单,其中包含一个 SAML 响应,其中包含身份验证断言和任何其他属性。浏览器自动将 HTML 表单发送回 SP。注意: SAML 规范要求对 POST 响应进行数字签名。
(未显示)如果签名和断言有效,SP 为用户建立会话并将浏览器重定向到目标资源。
在 IDP Init SSO(未经请求的 Web SSO)中,联合过程由 IDP 向 SP 发送未经请求的 SAML 响应来启动。在 SP-Init 中,SP 生成一个 AuthnRequest 作为联合过程中的第一步发送给 IDP,然后 IDP 以 SAML 响应进行响应。恕我直言,ADFSv2 对 SAML2.0 Web SSO SP-Init 的支持比其 IDP-Init 支持更强:与第 3 方 Fed 产品的集成(主要围绕对 RelayState 的支持),因此如果您有选择,您将希望使用 SP-初始化,因为它可能会使 ADFSv2 的生活更轻松。
以下是 PingFederate 8.0 入门指南中的一些简单 SSO 描述,您可以通过这些描述也可能有所帮助 - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html
SP 发起的 SSO
向用户收费:“嘿,吉米,给我看那份报告”
SP 吉米:“嘿,我还不确定你是谁。我们这里有一个流程,所以你先去 IdP 鲍勃验证自己。我相信他。”
Bob the IdP:“我看到 Jimmy 派你来这里的。请给我你的凭据。”
向用户收费:“嗨,我是比尔。这是我的凭据。”
Bob the IdP:“嗨,Bill。看起来你已经退房了。”
Bob the IdP:“嘿,Jimmy。这家伙 Bill 检查了,这里有一些关于他的额外信息。你可以从这里做任何你想做的事情。”
SP 吉米:“好吧,很酷。看起来比尔也在我们的已知客人名单中。我会让比尔进来。”
IdP 发起的 SSO
向用户收费:“嗨,鲍勃。我想去吉米家。那里的保安很严密。”
IdP 鲍勃:“嘿,吉米。我相信比尔。他检查了,这里有一些关于他的额外信息。你可以从这里做任何你想做的事情。”
SP 吉米:“好吧,很酷。看起来比尔也在我们的已知客人名单中。我会让比尔进来。”
我在这里详细介绍,但仍然保持简单:https ://jorgeclonconsulting.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 发起的)SSO。使用此选项,您的最终用户必须登录身份提供者的 SSO 页面(例如 Okta、OneLogin 或 Microsoft Azure AD),然后单击图标登录并打开 Procore Web 应用程序。要配置此解决方案,请参阅为 Microsoft Azure AD 配置 IdP 发起的 SSO、为 IdP 发起的 Okta SSO 配置 Procore 或为 OneLogin 配置 IdP 发起的 SSO。或服务提供商发起(SP 发起)的 SSO。称为 Procore 发起的 SSO,此选项使您的最终用户能够登录 Procore 登录页面,然后向识别提供者(例如 Okta、OneLogin 或 Microsoft Azure AD)发送授权请求。一旦 IdP 验证了用户的身份,用户就会登录到 Procore。要配置此解决方案,