如何从azure获取访问令牌

时间:2017-03-04 04:08:59

标签: azure authentication

我很难通过身份验证来使用REST API从Resource Usage API

获取订阅结算信息

我想获得有关如何为非交互式客户端获取令牌的帮助。我选择使用REST API,因为azure客户端似乎不支持资源使用API​​。

正如Authorization code grant (interactive clients)所描述的那样,我已使用我的订阅ID调用了请求,但未正确返回令牌。

[root@visual src]# curl -XPOST https://login.microsoftonline.com/xxxxx/oauth2/token -d ""
{"error":"invalid_request","error_description":"AADSTS90014: The request body must contain the following parameter: 'grant_type'.\r\nTrace ID: 32981285-a021-45c3-8d2f-62db49d2c2f1\r\nCorrelation ID: d88849dd-20f9-462e-9ce9-66b6fde0170e\r\nTimestamp: 2017-03-04 04:06:44Z","error_codes":[90014],"timestamp":"2017-03-04 04:06:44Z","trace_id":"32981285-a021-45c3-8d2f-62db49d2c2f1","correlation_id":"d88849dd-20f9-462e-9ce9-66b6fde0170e"}[root@visual src]#

我如何获得令牌?

1 个答案:

答案 0 :(得分:1)

如果您不提供某些凭据,则不会返回令牌:)

例如,如果您要使用客户端凭据执行非交互式请求,则您的请求必须包含(采用URL编码的表单格式):

  • grant_type = client_credentials
  • CLIENT_ID =你的应用内的客户端-ID
  • client_secret =你的应用内的客户端秘密
  • 资源=资源-URI换API-你想学的令牌换

对于Azure AD Graph API,资源URI可以是https://graph.windows.net/

如果您想使用用户名和密码,也可以使用密码授予令牌。在这种情况下,您必须发送:

  • client_id,client_secret和上面的资源
  • grant_type =密码
  • 用户名=您的-用户名
  • 密码=您的密码