如何在使用 Azure AD Graph API 时获取 'code' 以获取 access_token

how to get 'code' for getting access_token when using Azure AD Graph API

我是 Azure AD 的新手,想通过我的 java 应用与其交互。 在做了一些研究之后,我发现我们需要获取 bearer_token 才能将 Graph API 用于 Azure AD。

我正在关注 this link 以获取不记名令牌,但遇到其中一个参数的问题。

现在,如下图 link 所示,有几个参数和与它们相关的信息,例如它们是什么以及如何检索它们,但我没有看到任何相关信息 'code'参数。

谁能告诉我这是什么 'code' 以及我应该如何得到它?

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

非常感谢任何帮助!

此致, 阿米特

您正在尝试使用授权码授予流程。您可以在 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 步:一旦您从之前的通话中获得了 authorization_code,您就可以将其兑换为访问令牌。示例如下:

// 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