【问题标题】:Why do I receive a 403 forbidden response when calling this endpoint with Angular, using the Microsoft Graph REST API?为什么我在使用 Microsoft Graph REST API 使用 Angular 调用此端点时会收到 403 禁止响应?
【发布时间】:2021-02-10 12:29:30
【问题描述】:

主要问题

我一直致力于将 Microsoft Graph REST API 集成到 Angular(版本 10)应用程序中。我已按照following tutorial 给出的说明将 Angular 应用程序连接到 Microsoft Graph 并通过 Azure AD 登录用户(通过在应用程序注册中注册应用程序)。

我每一步都按照教程进行操作,现在我决定通过 HTTP 扩展应用程序 getting the Teams chats I am a member of。我决定通过将调用结果打印到浏览器控制台来创建一个简单的测试,但是当我尝试调用它时,会出现 HTTP 403 响应(“无法获取用户的许可证信息。确保用户有分配给他们的有效 Office365 许可证。”)我尝试使用学生 Office 365 帐户和我的个人 Microsoft 帐户执行此操作,但我继续收到相同的 HTTP 响应。

尝试的解决方案

在 Graph Explorer 中进行测试时,会收到正确的响应。我已将学生帐户添加到个人帐户为全局管理员的 Azure AD 租户。

我曾尝试在方法截图中调用aquireTokenPopupaquireTokenSilentaquireTokenRedirect,但无济于事(我仍然收到403 HTTP Forbidden响应。)我也看过通过 docs.microsoft.com 上列出的文档,并查看了此 403 响应的不同文档,但我无法确定 403 响应可能意味着什么 - 学生帐户有一个有效的 Office 365 租户,而我的个人帐户没有,我得到相同的响应。

为什么我会收到此响应,即使我已在弹出窗口中授予权限,以及配置为允许 Azure 中的端点?

是否配置错误?

我是否使用了错误的身份验证类型? (我应该使用 Azure AD B2C 吗?)

截图

Azure permissions

Browser console screenshot

Browser HTTP screenshot

Method screenshot

Login method screenshot

app.module msal configuration

【问题讨论】:

  • 请不要添加截图。调试并获得可接受的答案是不合适的。
  • @Akif“不适合调试并获得可接受的答案”?能否请您详细说明
  • 如果我们想重现您的代码并尝试查找错误,我们如何从您的屏幕截图中复制和粘贴?
  • 使用jwt.ms 解析您的访问令牌并提供屏幕截图。
  • 您必须使用工作或学校帐户,它不支持微软个人帐户! i.stack.imgur.com/p5bk1.png

标签: angular azure-active-directory microsoft-graph-api azure-ad-b2c microsoft-graph-teams


【解决方案1】:

发布 cmets 作为答案:

你必须满足以下两点:

  1. 您必须使用工作或学校帐户,它不支持 Microsoft 个人帐户。

  2. 您的帐户必须具有 Office365 许可证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多