【问题标题】:Windows Impersonation in an on-premises WCF Service using an Azure Service Bus Endpoint使用 Azure 服务总线终结点的本地 WCF 服务中的 Windows 模拟
【发布时间】:2015-03-22 08:02:32
【问题描述】:

我有一个基于 WebAPI 的主 Web 服务,它根据使用 ADAL Azure Active Directory 登录通过 WPF 桌面应用程序登录主服务的客户端为本地 WCF 服务提供 Azure 服务总线中继端点列表。这工作正常,主服务为登录的客户端返回一个服务总线端点。

然后客户端可以通过返回的服务总线端点连接到 WCF 本地服务没有问题。

但是,本地 WCF 服务中的某些方法需要模拟调用客户端用户,这就是我遇到的问题。有谁知道能够模拟通过 Azure 服务总线中继调用 WCF 服务的客户端的方法?我不能“登录用户”来模拟他们,因为我不知道他们的域密码,我只有他们的登录 UPN。

【问题讨论】:

  • 在您的 WCF 上,您想了解谁以 CLIENT 身份登录?
  • 我需要运行调用 WCF 服务的应用程序的客户端(用户)的凭据,以便我可以在某些服务方法上模拟它们,但我不能在 WCF 绑定上使用 Windows 身份验证,因为它是使用 Azure 服务总线中继绑定发布的,该绑定没有 Windows 身份验证选项(据我所知)。也许我需要某种身份验证标头添加到服务请求中,其中包括客户端的凭据,但到目前为止我还没有找到这样的示例......

标签: c# web-services azure impersonation servicebus


【解决方案1】:

您可以像我在写一篇关于通过 azure 服务总线队列流动身份的论文时那样解决这个问题。您需要提升运行本地服务的服务帐户的权限,这可能会引入漏洞,具体取决于您的解决方案的工作方式,但如果您可以缓解这种情况,那么这种方法将起作用。

论文位于以下链接: 通过 Azure 服务总线队列流动 Windows 标识 http://microsoftintegration.guru/publications/whitepapers/

希望这会有所帮助 迈克

【讨论】:

  • 感谢 Mike - 最终的解决方案是为需要模拟的下游服务的本地服务帐户设置约束委派,使用“任何身份验证协议”选项意味着我们可以模拟,即使我们只有要模拟的帐户的 upn。一旦设置了必要的 SPN,事情就会顺利进行。我现在对 Kerberos 的了解比我以前想知道的还要多!
猜你喜欢
  • 2013-04-23
  • 2015-01-09
  • 2018-12-13
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多