我遇到与此相同的问题 - Azure Service Management API authentication using Azure Active Directory Oauth情况略有不同。
我正在运行一个无头应用程序(使用nunit来运行集成测试),就像在http://msdn.microsoft.com/en-us/library/ee460782.aspx中一样,以获得舞台部署网址,这在所有它的荣耀中是动态的。
我可以调用生产URL并运行测试,同时以无头方式验证AD请求,但不能使用服务管理API。我已经获得了服务管理API的许可,就像在演练中一样。
另外,我通过客户端凭证调用获取令牌:
result = context.AcquireToken(
"https://management.core.windows.net/",
"{clientId}",
clientCredential, // had client id and key
new Uri("{redirectUri}"));
获取未授权:收到的JWT令牌发生安全令牌异常。
使用的获取部署网址位于此处 - http://msdn.microsoft.com/en-us/library/ee460804.aspx 我是双ched subscrption id,服务名称等。
尽管看似有效的令牌,任何人都能看到失败的原因?
这是否知道使用app键?我还找不到一个例子。
答案 0 :(得分:1)
使用AcquireToken(字符串资源,字符串clientId,UserCredential userCrential)重载。这是无头应用的功能designed。
由于Service Management API仅允许委派权限,因此您需要为用户(用户名和密码)而不是应用程序(客户端ID和密钥)提供凭据。