【发布时间】:2016-05-08 23:19:16
【问题描述】:
我正在遵循 Microsoft here 提供的指南和示例,我能够让演示正常工作,在控制台应用程序中进行身份验证,然后使用正确的令牌向 Web API 发出请求。
我希望使用它,但控制台应用程序中的代码需要移动到 Web 应用程序。本质上:外部服务器尝试访问安全的 Web API,在 HTTPS 请求的 Authentication 标头中提供 Azure AD 用户名/密码。我在第一个不安全的 Web API 中获取这些凭据,并尝试针对 AD 对凭据进行身份验证,从而获得令牌。然后,我将通过使用 AD 令牌发出请求来调用 [Authorize]-protected Web API。
此时我正在使用上面链接示例中的相同代码,只是将控制台应用程序中的代码向上移动到第一个不安全的 Web API 控制器中,但我没有运气。我在CloudIdentity 上读到“您只能使用来自本机客户端的这些流。机密客户端(例如网站)不能使用直接用户凭据。”。这是真的?如果是这样,还有其他方法可以实现我的目标吗?我需要使用凭据,因为将来可能会有更多服务使用 API,因此每个服务都需要自己的凭据才能使用,这些凭据可以在 Azure 中进行管理。
编辑:在阅读有关此内容的更多信息时,我是否真的打算使用客户端身份验证,在 Azure AD 中创建一个“应用程序”,并将客户端 ID 提供给每个希望调用 API 的外部服务,然后进行身份验证那个,而不是凭据?
【问题讨论】:
标签: asp.net azure authentication asp.net-web-api adal