因此,我正在创建一个要在Azure中托管的ASP.NET MVC应用程序。它目前通过Azure ACS对用户进行身份验证,该用户委托给应用程序的许多客户端IdP。
应用程序现在需要调用WCF服务来显示一些信息,但需要保护服务。我最初使用WS-Trust协议并使用" ActAs"通过应用程序传递身份。但令牌Azure ACS 2.0 will not issue tokens of this type。
如何根据用户的当前身份获取服务的访问令牌?我可以回到ACS获取额外的令牌,但系统不得提示用户每次都提供凭据。
答案 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)和活动 端点将使用引导令牌并发出其他声明 对于那个用户。以下是该应用程序的总结图 建筑:
ThinkTecture Identity Server可能会让您在部署自己的自定义STS时占用一席之地,或者来自同一开发人员的IdentityModel中的类可能会有所帮助 - 这里有一组与WCF安全性相关的特定帮助程序WS-信任。 (链接适用于.NET 4.5的最新版本 - 也有早期版本。)