SP 和 IDP 启动 SSO 的差异

有人能向我解释一下 SP 启动了 SSOIDP initiated SSO之间的主要区别吗? 包括哪一个是与 ADFS + OpenAM 联盟一起实现单点登录的更好的解决方案?

187935 次浏览

在 IDP Init SSO 中,联合进程由 IDP 向 SP 发送一个未经请求的 SAML 响应来启动。在 SP-Init 中,SP 生成一个 AuthnRequest,作为 Federation 流程的第一步发送给 IDP,然后 IDP 用 SAML 响应进行响应。IMHO ADFSv2对 SAML2.0 Web SSO 的支持 SP-Init 比它的 IDP-Init 支持 re: 与第三方 Fed 产品的集成(主要围绕着对 RelayState 的支持) ,所以如果你有选择的话,你会想要使用 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

在此场景中,用户登录到 IdP 并尝试访问远程 SP 服务器上的资源。SAML 断言通过 HTTPPOST 传输到 SP。

处理步骤:

  1. 用户已登录到 IdP。
  2. 用户请求访问受保护的 SP 资源。用户没有登录到 SP 站点。
  3. IdP 可以选择从用户数据存储区检索属性。
  4. IdP 的 SSO 服务向浏览器返回一个 HTML 表单,其中包含包含身份验证断言和任何其他属性的 SAML 响应。浏览器会自动将 HTML 表单发送回 SP。

SP 启动 SSO

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

In this scenario a user attempts to access a protected resource directly on an SP Web site without being logged on. The user does not have an account on the SP site, but does have a federated account managed by a third-party IdP. The SP sends an authentication request to the IdP. Both the request and the returned SAML assertion are sent through the user’s browser via HTTP POST.

处理步骤:

  1. 用户请求访问受保护的 SP 资源。请求被重定向到联合服务器以处理身份验证。
  2. 联合服务器向浏览器发送一个 HTML 表单,其中包含一个从 IdP 进行身份验证的 SAML 请求。HTML 表单会自动发送到 IdP 的 SSO 服务。
  3. 如果用户尚未登录到 IdP 站点,或者需要重新身份验证,则 IdP 会请求凭据(例如 ID 和密码) ,然后用户登录。
  4. 可以从用户数据存储中检索关于用户的其他信息,以便包含在 SAML 响应中。(这些属性是作为 IdP 和 SP 之间的联合协议的一部分预先确定的)

  5. IdP 的 SSO 服务向浏览器返回一个 HTML 表单,其中包含包含身份验证断言和任何其他属性的 SAML 响应。浏览器会自动将 HTML 表单发送回 SP。注意: SAML 规范要求对 POST 响应进行数字签名。

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

SP 启动 SSO

用户比尔: “嘿,吉米,给我看看那份报告”

吉米: “嘿,我还不确定你是谁。我们这里有一个过程,所以你要先去确认一下你的身份。我相信他”

鲍勃: “我看到吉米派你来这里。请给我你的证件。”

用户 Bill: “嗨,我是 Bill。这是我的证件。”

鲍勃的 IdP: “嗨,比尔。看起来你退房了。”

鲍勃的 IdP: “嘿,吉米。这个叫比尔的家伙查过了,这里还有一些关于他的额外信息。你在这里想做什么就做什么”

吉米的 SP: “好的,酷。看来比尔也在我们的客人名单上。我会让比尔进来的”

IdP Initiated SSO

Bill the user: "Hey Bob. I want to go to Jimmy's place. Security is tight over there."

Bob the IdP: "Hey Jimmy. I trust Bill. He checks out and here's some additional information about him. You do whatever you want from here."

吉米的 SP: “好的,酷。看来比尔也在我们的客人名单上。我会让比尔进来的”


在这里我将更详细地介绍,但仍然保持简单: 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 启动) SSO。有了这个选项,你的终端用户必须登录到你的身份提供商的 SSO 页面(例如,Okta,OneLogin,或微软 Azure 广告) ,然后点击一个图标登录并打开 Procore 网络应用程序。要配置此解决方案,请参见为 Microsoft Azure AD 配置 IdP 初始化 SSO、为 IdP 初始化 Okta SSO 配置 Procore 或为 OneLogin 配置 IdP 初始化 SSO。 或者 服务提供者启动(SP 启动) SSO。这个选项被称为 Procore 发起的 SSO,它让你的最终用户能够登录 Procore 登录页面,然后向身份识别提供商(如 Okta、 OneLogin 或微软 Azure 广告)发送授权请求。一旦 IdP 验证了用户的身份,用户就会登录到 Procore。若要配置此解决方案,请参见为 Microsoft Azure 活动目录配置 Procore-Initiated SSO,为 Okta 配置 Procore-Initiated SSO,或为 OneLogin 配置 Procore-Initiated SSO。