java - 我在点击 microsoft Graph 的 url 时无法获取授权代码?

标签 java azure azure-active-directory microsoft-graph-api access-token

我的 POC 的要点是使用 Java 中的 Microsoft Graph Api 发送邮件。 我已按照以下 Github 存储库步骤进行操作,并且能够成功构建代码: https://github.com/microsoftgraph/console-java-connect-sample

根据Repo中提到的步骤,我应该在URL中获得授权码, 但我无法获取授权码。

我对代码做了一些更改,

  1. 首先,我根据我的应用程序客户端 ID 替换 CLIENT_ID 值。

  2. 其次,还要更改 Constants.java 中的重定向 URL。在 repo 协议(protocol)中, 重定向网址被提及为 “https://login.microsoftonline.com/common/oauth2/nativeclient”。但正如我一样 使用组织帐户,我提到了我的应用程序(网络服务) 重定向网址。

  3. 我还在 MicrosoftAzureAD20Api.java 中进行了另一项更改,我 替换了 getAccessTokenEndpoint() 和 getAuthorizationBaseUrl() URL 根据我的申请。

运行代码后,它运行没有错误,我也在控制台中打印了授权 URL,但我没有在 URL 中获取授权代码(我在控制台中打印)。 预期的 url(根据 github)类似于:

https://login.microsoftonline.com/common/oauth2/nativeclient?code={IAQABAAIAAABHh4kmS_aKT5XrjzxRAtHz5S...p7OoAFPmGPqIq-1_bMCAA}&session_state=dd64ce71-4424-494b-8818-be9a99ca0798

但是我得到的 URL 如下所示:

 https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/authorize?response_type=code&client_id={{ClientId}}&redirect_uri=https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fnativeclient&scope=Files.ReadWrite%20openid%20User.Read%20Mail.Send%20Mail.ReadWrite

作为两个网址的比较,第二个网址中缺少代码。(我需要进一步传递)

请帮帮我。

最佳答案

您获得的 URL 是授权 URL。命令行界面会在 Azure Active Directory 授权终结点上打开一个浏览器窗口。您需要输入您的用户名和密码进行身份验证。

enter image description here

当您通过身份验证后,您将进入该应用的授权窗口。单击授权窗口上的“确定”按钮。然后您将获得代码。

enter image description here

关于java - 我在点击 microsoft Graph 的 url 时无法获取授权代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57289932/

相关文章:

java - 具有附加参数的 JPA 关系 ManyToMany

java - 使用Gradle构建Android应用程序时出现问题

azure - 一个Azure移动服务NotificationHub将推送通知发送到两个不同的IOS应用程序

azure - C# 控制台应用程序可以在 Azure AD 中注册吗

azure-active-directory - 通过 Node.js 上的 Azure Function 获取当前经过身份验证的用户名

java - 这个问题真的需要框架吗?

python - 使用 az cli 或 python sdk 检索 blob 存储连接字符串?

mongodb - 初始化 mongo DB 客户端时 Azure Web 应用程序崩溃

azure-active-directory - Azure 服务主体是否支持 MFA

java - Windows JDK 没有编译器错误 - 已经尝试过 PATH,安装/重新安装 x64 和 x86。这是怎么回事?