使用Azure AD Graph API时如何获取用于获取access_token的“代码”

时间:2018-09-16 15:04:18

标签: java azure azure-active-directory azure-api-management azure-api-apps

我是Azure AD的新手,并且想通过我的Java应用程序与其进行交互。 经过研究后,我发现我们需要获取bearer_token才能将Graph API用于Azure AD。

我正在跟踪this链接以获取不记名令牌,但面临参数之一的问题。

现在,如下面链接中的下图所示,有几个参数,并且给出了与它们有关的信息,如它们是什么以及如何检索它们,但我没有看到与“ code”参数有关的任何信息。

enter image description here

有人可以告诉我这个“代码”是什么,我应该如何获得它?

注意:我有免费的Azure AD试用帐户。

非常感谢您的帮助!

关于, 阿米特(Amit)

1 个答案:

答案 0 :(得分:2)

您正在尝试使用授权码授予流程。您可以在Microsoft Docs

中详细了解流程和步骤。

这是一个两步过程:

步骤1 :通过点击/ ​​authorize端点获取授权码。您将获得一个authorization_code作为对此调用的响应。示例如下所示:

// Line breaks for legibility only

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&state=12345

步骤2 :在上次调用中获得了授权码后,您就可以将其兑换为访问令牌。示例如下所示:

// Line breaks for legibility only

POST /{tenant}/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh    // NOTE: Only required for web apps