2011-09-27 45 views
0

我有一个asp.net mvc 3 web应用程序,需要根据用户请求的子域从多个STS支持SSO。Windows Identity Framework中的多重安全令牌服务

因此,https://weylandyutani.mydomain.com的请求应该信任Weyland-Yutani STS,并且https://tyrell.mycomain.com应该信任Tyrell STS。

大多数WIF资源讨论在应用程序的Web配置中启用STS。有没有一种可以接受的方式来动态地做到这一点,而不必重新发明轮子?

回答

3

在这种情况下,您通常会使用中间STS(称为“RP-STS”或“联合提供商”)来处理所有信任关系,即:您的应用信任RP-STS,那么RP-STS会信任Weyland-Yutani,Tyrell等。

添加一个RP-STS可以简化一些事情,特别是如果每​​个身份STS向您发送的声明与您所需的声明完全不同例如:Tyrell可能会向您发送“姓名”,“姓氏”和“电子邮件”,Weyland可能会发送“用户名”,“电子邮件”,RP-STS会根据您的应用程序需要

你提示RP-STS的方式在哪里重定向用户是通过whr参数(代表“Home Realm”)。您的应用会查看请求URL,然后在重定向到RP-STS之前附加whr参数。

以上所有内容均广泛记录在此book的“Federation with Multiple Partners”一章中。

如果您不想构建/获取和部署自己的RP-STS(取决于应用程序的部署模型,例如可以使用ADFS v2.0),则可以使用Windows中的Access Control Service Azure上。

This other chapter解释了它是如何工作的。