禁止使用Microsoft Oauth2 403

时间:2020-05-08 13:51:46

标签: java azure-active-directory microsoft-graph-api msal microsoft-identity-platform

我想访问我的Java应用程序中任何用户的日历。

https://portal.azure.com中,我创建了一个Azure Active Directory:aniketorg123

然后我在其中创建了一个应用:aniketorgapp1

以下是我添加的重定向URI:

enter image description here

然后我添加了一些权限:

enter image description here

现在,在我的应用程序中,我发送Oauth授权请求:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&response_mode=form_post&redirect_uri=https%3A%2F%2Flocalhost%3A8443%2Fmsal4jsample%2Fsecure%2Faad&client_id=ca146462-8880-424c-b629-cc7c0d0fb1b3&scope=openid+offline_access+profile&prompt=select_account&state=69a2ac0f-abac-46ad-b525-88f0b70182b7&nonce=9278f424-6858-4e22-bb13-7b13894abda7

这将加载“选择帐户”页面。当用户选择一个帐户时,我得到以下响应:

403禁止访问

为什么我会被禁止403?

2 个答案:

答案 0 :(得分:1)

如果出现403禁止错误,请确保已将正确的服务主体添加到Cloud Partner Portal中的发布者帐户。请按照Prerequisites页中的步骤将服务主体添加到门户。

如果添加了正确的服务主体,则请验证所有其他信息。请密切注意在门户网站上输入的对象ID。 Azure Active Directory应用程序注册页面中有两个对象ID,并且您必须使用本地对象ID。您可以转到应用程序的应用程序注册页,然后在本地目录的受管应用程序 下单击应用程序名称,以找到正确的值。这将带您到应用程序的本地属性,在“属性”页面中可以找到正确的对象ID,如下图所示。另外,添加服务主体并进行API调用时,请确保使用正确的发布者ID。

参考Document

答案 1 :(得分:1)

该示例似乎有问题,应立即修复。您也可以尝试更改授权URL中的response_mode = query,这应该可以解决此问题。这是由浏览器正在进行的某些相同站点更新引起的。