【问题标题】:How do I pass the principal provided by Azure ACS in an MVC application to a WCF service?如何将 MVC 应用程序中 Azure ACS 提供的主体传递给 WCF 服务?
【发布时间】:2012-11-30 22:01:31
【问题描述】:

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

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

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

【问题讨论】:

  • 我曾考虑过制作自定义 STS 的想法,但这似乎是一种非常严厉的方法。
  • 同意 - 委派联合身份的所有内容看起来都有些冗长。我相信你已经看到了,这至少会给你一个定制 STS 的现成开始:thinktecture.github.com
  • @JcFx 你应该添加这些东西作为答案;这是一个值得投票的解决方案,即使我选择不遵循它。

标签: azure wcf-security azure-acs


【解决方案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 的最新版本 - 也有早期版本)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2016-03-17
    相关资源
    最近更新 更多