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

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

我是 Azure AD 的新手,希望通过我的 Java 应用程序与其进行交互。 经过一些研究,我发现我们需要获取 bearer_token 才能使用 Azure AD 的 Graph API。

我正在关注this获取不记名 token 的链接,但面临参数之一的问题。

现在,如上面链接中的下图所示,有几个参数和与它们相关的信息,例如它们是什么以及如何检索它们,但我没有看到任何与“代码”参数相关的信息。

enter image description here

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

注意:我有 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 步:在您从上次调用中获得授权代码后,您可以将其兑换为访问 token 。示例如下:

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

关于java - 使用 Azure AD Graph API 时如何获取 'code' 以获取 access_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52355424/

相关文章:

JAVA - 如何打印外部 jar 使用的方法/对象的跟踪

java - Java 端元素的 GWT 高度始终为 0

java - 是否可以在 javajet 代码中使用 php api 函数?

.net - Azure ACS 是否支持 OpenID Connect 提供商?

c# - 使用表达式将查询抽象到 Azure 表存储

java - 绘制和表示带有阵列墙的迷宫

azure - 找出 HPC 命令行实用程序的 (Azure) OAuth2 授权流程

azure - [Azure AD] : Reset Password button Disabled

azure - Azure Active Directory 应用程序上下文中的 "delegated permissions"是什么?

azure - 使用 Azure 数据工厂将文件内容从 Azure 存储复制到 Azure SQL Db