1

我的任务是在 ASP.NET 中为 SAML v2.0 编写一个 SP(服务提供者),我想知道以下内容;

如果用户在主 SP 上登录服务(用户可以作为锚点/链接访问我的 SP,除非之前已添加书签),然后请求访问我的 SP,我应该如何处理他们的登录?

他们将在主 SP 上登录并获得 IdP 的授权,但该 SP 将如何告诉我的 SP 用户已登录?我是否必须向 IdP 发送新的授权请求以确定用户是否已登录,或者是否应该使用来自 SP 的查询字符串将其作为发布数据/重定向传递?

我已经阅读了技术概述基础知识,但它们没有涵盖这一部分。

我会联系主要的 SP 并询问如何进行,但我想先覆盖我的基地,看看是否有一个标准的方法来处理这种情况。

4

2 回答 2

2

最简单的做法是让“主 SP”构造链接,以便为用户启动 IDP-Init SSO 以登录到您的应用程序。因此,用户将显示从 IDP(客户)到您的 SP 的新断言。

您还可以让它们直接链接到您的站点,以便为给定的身份提供者/客户调用 SP-Init SSO。

无论选择哪种方式,您都需要处理 SAML 2.0 的多个用例和选项。如果您想查看 Ping Identity 提供的 SaaS 合作伙伴计划,您可以在短时间内启动并运行它。www.pingidentity.com

如果您想了解更多关于我们看到的其他内容的信息,请告诉我

于 2010-10-25T14:21:53.330 回答
1

为了执行 SP 发起的 SSO,您要么只需要一个身份提供者,您可能需要向其发送身份验证请求,要么需要一些方法来确定特定用户的正确身份提供者——要么是用户需要提供一些 IdP 识别信息(例如 StackOverflow 在您想使用 Google 或其他 ID 登录时所做的),或者 URL 中可能嵌入了某些内容。(对于我开发的应用程序,不同的客户端有自己的站点域,因此 IdP 会映射到这些域。)

所以,是的,如果您要走 SP 发起的路线,您将需要向 IdP 发出身份验证请求以确定用户是谁,并且您将希望使用 RelayState 让他们回到最初请求的状态页。如果他们已经在 IdP 上进行了身份验证,那么这种交换很可能会在不需要用户输入的情况下发生。

于 2010-11-05T20:04:49.467 回答