【问题标题】:Calling a WCF service that uses ACS from a MVC site从 MVC 站点调用使用 ACS 的 WCF 服务
【发布时间】:2012-06-21 19:32:21
【问题描述】:

我有一个使用 ACS 作为身份验证提供程序的 MVC 网站。 身份验证过程运行良好。 我想调用一个需要身份验证的 WCF 服务,我想传递一个 RST 令牌,但我不知道如何创建它

【问题讨论】:

    标签: asp.net-mvc wcf acs saml-2.0


    【解决方案1】:

    关键问题是 WCF 服务期望什么身份。如果您可以为整个 MVC 站点(又名“受信任的子系统”)使用一个身份,那么一切照旧:您需要从 WCF 信任的身份提供者那里获取一个令牌,仅此而已。 ACS 可能是其中之一,但也可能是完全不同的东西。这实际上取决于谁拥有 WCF 服务。

    另一方面,如果您希望将 原始 用户身份(即 MVC 站点的调用者)流向 WCF 服务,那么您处于委托方案中。这是可能的,但通常很复杂。搜索“Act As”(这里有一篇关于它的文章:http://msdn.microsoft.com/en-us/library/ee517268.aspx)。

    简而言之,MVC 应用程序将使用用户提交的原始令牌作为输入向 STS 请求一个新令牌,并带有特殊条件(“充当”)。此条件表示委托的 STS。

    正如我所说,这是一个非常复杂的设置。另外(我上次听说)ACS 不支持“充当”请求。

    【讨论】:

    • 没错,ACS 不做 ActAs。听起来 WCF 服务是一个受信任的子系统,如果您在用户身份的上下文中调用 WCF 服务,那么您可以尝试重用 MVC 应用程序中的令牌(在 web.config 中将 saveBootstrapToken 设置为 true)。如果服务不关心是哪个用户调用它,那么您可以考虑使用服务身份从 ACS 获取新令牌。
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    相关资源
    最近更新 更多