通过AD Oauth访问Azure Service Management API失败

本文关键字:Management API 失败 Service Azure AD Oauth 访问 通过 | 更新日期: 2023-09-27 18:24:40

我遇到了与此相同的问题-Azure Service Management API身份验证使用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}"));

未经授权:收到的JWT令牌出现安全令牌异常。

使用的Get部署url位于此处-http://msdn.microsoft.com/en-us/library/ee460804.aspx我双击了订阅id、服务名称等

尽管有一个看似有效的代币,但有人对失败的原因有什么见解吗?

这是已知的与应用程序密钥一起工作吗?我还找不到一个例子。

通过AD Oauth访问Azure Service Management API失败

改为使用AcquireToken(字符串资源、字符串客户端ID、UserCredential用户凭据)重载。这是为无头应用程序设计的功能。

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