Windows 使用 Azure 服务总线端点模拟本地 WCF 服务
Windows Impersonation in an on-premises WCF Service using an Azure Service Bus Endpoint
我有一个基于 WebAPI 的主 Web 服务,它基于使用 ADAL Azure Active Directory 登录通过 WPF 桌面应用程序登录到主服务的客户端,为本地 WCF 服务提供 Azure 服务总线中继端点列表.这工作正常,主服务 returns 是登录客户端的服务总线端点。
然后客户端可以通过返回的服务总线端点连接到 WCF 本地服务,没有问题。
但是,本地 WCF 服务中的某些方法需要模拟调用客户端用户,这就是我遇到的问题。有谁知道一种能够模拟通过 Azure 服务总线中继调用 WCF 服务的客户端的方法吗?我无法 "log the user on" 来冒充他们,因为我不知道他们的域密码,我只有他们的登录 UPN。
您可以采用我在撰写有关通过 Azure 服务总线队列传递身份的论文时采用的相同方式解决此问题。您需要为您的服务帐户提升权限 运行 内部部署服务,这可能会引入漏洞,具体取决于您的解决方案的工作方式,但如果您可以缓解这种情况,那么这种方法就可行。
论文如下link:
通过 Azure 服务总线队列流动 Windows 身份
http://microsoftintegration.guru/publications/whitepapers/
希望对您有所帮助
迈克
我有一个基于 WebAPI 的主 Web 服务,它基于使用 ADAL Azure Active Directory 登录通过 WPF 桌面应用程序登录到主服务的客户端,为本地 WCF 服务提供 Azure 服务总线中继端点列表.这工作正常,主服务 returns 是登录客户端的服务总线端点。
然后客户端可以通过返回的服务总线端点连接到 WCF 本地服务,没有问题。
但是,本地 WCF 服务中的某些方法需要模拟调用客户端用户,这就是我遇到的问题。有谁知道一种能够模拟通过 Azure 服务总线中继调用 WCF 服务的客户端的方法吗?我无法 "log the user on" 来冒充他们,因为我不知道他们的域密码,我只有他们的登录 UPN。
您可以采用我在撰写有关通过 Azure 服务总线队列传递身份的论文时采用的相同方式解决此问题。您需要为您的服务帐户提升权限 运行 内部部署服务,这可能会引入漏洞,具体取决于您的解决方案的工作方式,但如果您可以缓解这种情况,那么这种方法就可行。
论文如下link: 通过 Azure 服务总线队列流动 Windows 身份 http://microsoftintegration.guru/publications/whitepapers/
希望对您有所帮助 迈克