SAML2 多个服务提供商

SAML2 Multiple Service Providers

我们使用 SAML 2.0 在我们的 Web 产品 (app1) 中实现了单点登录 - 我们的产品是服务提供商。现在,我们的一位客户要求在 app1 中使用 link,这会将用户带到他们的 Web 应用程序 (app2),并且他们希望用户单点登录到他们的应用程序。我假设他们的应用程序 (app2) 将使用与 app1 相同的 IDP。

根据我的理解,我认为对 app2 的 AssertionConsumer 的 link 应该可以完成这项工作。单击 app2 的 link 时,app2 的 AssertionConsumer 将能够处理来自 app1 的声明。如果有人插话让我知道我是否遗漏了什么,我将不胜感激。

当用户到达时app2是否进行被动认证?如果是这样,您应该 link 到 app2 中的任何页面,让它负责向 IdP 询问用户的登录状态,而不是试图告诉它。

如果 app2 不自动检查 IdP,那么您应该 link 到 app2 中 需要 身份验证的页面,这样它就会。

一般来说,IdP 的全部要点是 它是 SP 信任的东西,可以告诉他们用户是否(以及如何)经过身份验证,因此您应该不要尝试在 SP 之间建立额外的信任系统。 (如果他们 互相提示 当前用户已登录,甚至是某个特定的人,这很好,但他们应该 检查 IdP 之前相信它。)

您不应该 link 断言消费者 URL。您 link 到 app2 中的相关页面。 App2 会检测到用户未通过身份验证,并将其发送给 IDP 进行身份验证。 IDP 将检测到用户已经通过身份验证,并且 return 用户会转到最初发送到的页面。