如何将MVC应用程序中Azure ACS提供的主体传递给WCF服务?

时间:2012-11-30 11:57:51

标签: azure wcf-security azure-acs

因此,我正在创建一个要在Azure中托管的ASP.NET MVC应用程序。它目前通过Azure ACS对用户进行身份验证,该用户委托给应用程序的许多客户端IdP。

应用程序现在需要调用WCF服务来显示一些信息,但需要保护服务。我最初使用WS-Trust协议并使用" ActAs"通过应用程序传递身份。但令牌Azure ACS 2.0 will not issue tokens of this type

如何根据用户的当前身份获取服务的访问令牌?我可以回到ACS获取额外的令牌,但系统不得提示用户每次都提供凭据。

1 个答案:

答案 0 :(得分:1)

我认为推荐的方式是使用自定义STS进行身份委派,如下例所示:http://code.msdn.microsoft.com/windowsazure/Federate-Windows-Live-ID-556ad976

引用描述:

  

在此示例中,我们将引导您构建一个应用程序   联合并委派Windows Live ID声明。应用程序   利用公开的自定义安全令牌服务   WS-Federation被动端点(default.aspx)并且还公开了一个   WS-Trust活动端点(ActAsIssuer.svc)。被动端点   联合到Windows Azure访问控制服务(ACS)和活动   端点将使用引导令牌并发出其他声明   对于那个用户。以下是该应用程序的总结图   建筑:   enter image description here

ThinkTecture Identity Server可能会让您在部署自己的自定义STS时占用一席之地,或者来自同一开发人员的IdentityModel中的类可能会有所帮助 - 这里有一组与WCF安全性相关的特定帮助程序WS-信任。 (链接适用于.NET 4.5的最新版本 - 也有早期版本。)