【问题标题】:Azure Service Management API access via AD Oauth fails通过 AD Oauth 访问 Azure 服务管理 API 失败
【发布时间】:2014-11-22 01:23:18
【问题描述】:

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

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

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

另外,我通过客户端凭据调用获得令牌:

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

A get Unauthorized:收到的 JWT 令牌发生安全令牌异常。

使用的获取部署 url 在这里 - http://msdn.microsoft.com/en-us/library/ee460804.aspx 我双重订阅 id、服务名称等。

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

这是否已知与应用程序密钥一起使用?我还没有找到一个例子。

【问题讨论】:

  • 你能在哪里解决这个问题?
  • 不,所有凭据(天蓝色 AD 帐户用户名/密码)或 clientId/appkey 都不起作用。

标签: c# api azure service oauth


【解决方案1】:

改用 AcquireToken(string resource, string clientId, UserCredential userCrential) 重载。这是用于无头应用程序的函数designed

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    相关资源
    最近更新 更多