c# - 通过 AD Oauth 访问 Azure 服务管理 API 失败

标签 c# api azure service oauth

我遇到了与此相同的问题 - Azure Service Management API authentication using Azure Active Directory Oauth场景略有不同。

我正在运行一个 headless 应用程序(使用 nunit 来运行集成测试)设置,就像 http://msdn.microsoft.com/en-us/library/ee460782.aspx 中一样。获取阶段部署 URL,该 URL 是动态的。

我可以调用生产 url 并运行测试,同时以 headless 方式使用 AD 验证请求,但不能使用服务管理 api。我已向该服务的服务管理 API 授予权限,如演练中所示。

此外,我通过客户端凭据调用获取 token :

result = context.AcquireToken(
  "https://management.core.windows.net/",
  "{clientId}",
  clientCredential,   // had client id and key
  new Uri("{redirectUri}"));

获取未经授权:收到的 JWT token 发生安全 token 异常。

使用的获取部署 URL 位于此处 - http://msdn.microsoft.com/en-us/library/ee460804.aspx 我仔细检查了订阅 ID、服务名称等。

尽管 token 看似有效,但有人对失败的原因有见解吗?

这是否已知与应用程序 key 一起使用?我还找不到一个例子。

最佳答案

请改用 AcquireToken(string resource, string clientId, UserCredential userCrential) 重载。这是函数designed对于 headless 应用程序。

由于服务管理 API 仅允许委派权限,因此您需要提供用户凭据(用户名和密码)而不是应用程序(客户端 ID 和 key )。

关于c# - 通过 AD Oauth 访问 Azure 服务管理 API 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26069606/

相关文章:

c# - Redis 服务器和连接多个客户端

c# - 寻找循环列表解决方案

python - 我的谷歌地图 api key 在 python 中不起作用,尽管它在 swift 中工作

azure - 无法通过 Azure VM 中运行的 Windows 服务在 Azure 文件共享中创建新文件夹

azure - Grafana for K8S - 配置仪表板访问权限

c# - 在列表框中绑定(bind)图像

c# - EmguCV/OpenCV 图像加法/减法

ios - 在源代码中隐藏 API key

c# - ASP.Net 4 非 MVC API 路由处理程序设计

azure - 将域转移到 Azure