SAML:服务提供商之间的沟通?

时间:2010-10-25 09:29:01

标签: asp.net saml

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

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

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

我已阅读technical overview以及basics,但它们并未涉及此部分。

我会联系主SP并询问如何继续,但我想首先介绍我的基础,看看是否有一种标准的方法来处理这种情况。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

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

所以,是的,如果您要去SP发起的路线,您需要向IdP发出身份验证请求以确定该用户是谁,并且您将需要使用RelayState将它们恢复为最初请求的页面。如果它们已经在IdP上进行了身份验证,则很可能会在不需要用户输入的情况下进行此交换。