【问题标题】:Microsoft flow:ForbiddenError-403, when trying to create private channel in MS teamsMicrosoft 流程:ForbiddenError-403,尝试在 MS 团队中创建私人频道时
【发布时间】:2021-02-16 15:31:57
【问题描述】:

我正在尝试向 MS 团队发出 HTTP 请求,以便创建私有通道,如下例所示。 https://docs.microsoft.com/en-us/graph/api/channel-post?view=graph-rest-1.0&tabs=http

为了对其进行身份验证,带有“Active Directory oauth”选项的 HTTP 请求需要一些信息。 1) 客户 ID,2) 租户 ID,3) 受众和 4) 凭证类型。 因此,我在 Registration App Azure 页面注册了一个应用程序,在那里我拥有所有这些信息 + 创建一个秘密来提供它。另外我给权限。我的任务是创建/删除私人频道和添加/删除成员。为什么会出现 403-statusCode 错误,称为“Forbidden”?

此外,在很多文档中,都提到了令牌,但我不知道如何创建和使用它,因为所有这些身份验证/授权/权限也没有准确的分步示例。

有人可以提供吗?或者解释为什么那里会出现错误,因为信息 microsoft.docs 效率低?

https://docs.microsoft.com/en-us/graph/resolve-auth-errors

https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow

https://docs.microsoft.com/en-us/graph/resolve-auth-errors

【问题讨论】:

  • 首先,我会先了解 Identity 的基础知识,然后再进行 Graph API 编程。此外,如果我只想玩上述 Graph 调用,那么您可以使用 Microsoft Graph 资源管理器或 POSTMAN(使用与您在应用程序中执行的完全相同的 AAD 流程)来查看您是否可以重现该场景。
  • 我想知道你在收到 403 禁止响应之前做了什么来请求图形 api 吗?
  • @HuryShen 在我在问题开头提供的第一个链接中,如果您向下滚动,则有 2 个示例。正是这两个脚本。
  • 这对您有帮助吗?

标签: authentication azure-active-directory microsoft-graph-api documentation http-status-code-403


【解决方案1】:

403错误说明你的token没有调用api的权限。每个 api 文档都清楚地说明了调用 api 需要哪些权限。 以create channel 为例:它列出了调用该api 所需的权限。这些权限从小到大排列,您只需选择其中一项即可。然后您需要将权限添加到您的应用程序,然后授予管理员同意权限。

转到 Azure 门户>Azure AD>应用注册>您的应用>API 权限

需要注意的是权限分为应用权限委托权限

委托权限是服务主体在 代表用户。它通常涉及用户交互。如果你需要 要登录用户,您可以选择授予权限,并且 那么您需要使用auth code flow 来获取访问令牌。

应用权限是服务主体的授权 代表他们自己。它通常用于没有用户的守护进程 已登录。如果您不需要登录用户,您可以选择 授予权限,然后您需要使用 client credential flow 获取访问令牌。

【讨论】:

  • 问题是我不能“授予同意”某些权限,因为我不是管理员。所以,我确实问过管理员,现在它正在工作。非常基本的东西,但弄清楚它仍然很重要。谢谢@Carl Zhao。
猜你喜欢
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
相关资源
最近更新 更多