0

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

应用程序现在需要调用 WCF 服务来显示一些信息,但需要保护这些服务。我最初虽然使用 WS-Trust 协议并使用“ActAs”令牌通过应用程序传递身份,但是Azure ACS 2.0 不会发出这种类型的令牌

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

4

1 回答 1

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-Trust 有关。(链接适用于 .NET 4.5 的最新版本 - 也有早期版本)。

于 2012-11-30T13:56:23.037 回答