Azure active directory 通过图形API添加团队成员。答复:403

Azure active directory 通过图形API添加团队成员。答复:403,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我在Azure Active Directory上有一个来宾用户(完全赎回-接受邀请等),我正试图通过Graph API将其添加到团队(在Microsoft团队中) 下面我已经为我的应用程序设置了所有必要的权限,但是我收到了来自POST请求的403响应 { "error": { "code": "Forbidden", "message": "An unknown e

我在Azure Active Directory上有一个来宾用户(完全赎回-接受邀请等),我正试图通过Graph API将其添加到团队(在Microsoft团队中)

下面我已经为我的应用程序设置了所有必要的权限,但是我收到了来自POST请求的403响应

{
    "error": {
        "code": "Forbidden",
        "message": "An unknown error has occurred.",
        "innerError": {
            "date": "2020-12-09T15:52:30",
            "request-id": "X-X-X-X-X",
            "client-request-id": "XXX-XXX-XX-XXX-XXX"
        }
    }
}
下面是我解码的MS auth令牌,确认了必要的权限,允许我的呼叫添加团队成员(该应用程序还执行一些其他操作,因此需要额外的烫发):

奇怪的是,如果我使用PowerShell模块(microsoftteams),它会成功地将该用户添加到必要的团队中。我知道这个模块使用Graph API,所以我不知道为什么一篇直接的帖子会失败(尝试寻找模块源代码,看看他们使用的是什么请求,但没有成功)

为了找到这个问题的解决方案,我只使用了Postman,所以我没有任何代码可以共享。我还可以通过API添加频道成员(来宾)、创建频道等,但只有在尝试将来宾添加到团队时才会出现403问题

我的帖子:

职位ID}/成员

标题

{
    "Content-Type": "application/json",
    "Authorization": "Bearer {TOKEN}"
}
身体

我已经尝试了v1.0和beta端点。两人给出了相同的403

我很高兴提供可能需要的任何进一步信息

如有任何建议/信息能为我指明正确的方向,我将不胜感激


谢谢。

您需要知道的第一件事是您必须是全局管理员团队管理员团队所有者才能将来宾添加到团队中,因此您必须以管理员角色的用户身份登录才能添加来宾用户

因此,您不能使用应用程序权限获取令牌,因为它没有用户登录,您可以使用它添加成员用户,但不能用于添加来宾。您需要添加团队成员.ReadWrite.All
代表权限
,然后授予管理员同意,然后您需要使用以获取访问令牌


(1)HTTP 403点与试图进行API调用的用户的权限或角色有关。因此,请确保为用户分配了必要的角色,以便他们可以执行操作(除了您的权限)(2)在代码之外,我会尝试建议使用Microsoft Graph explorer/POSTMAN进行相同的Graph API调用,并查看其是否有效(3)测试您的令牌(我看到您已经这样做了)还有它的范围/权限,我,你有机会研究我的答案吗?这对你有用吗?卡尔的回答对你有用吗?如果您还有任何问题,可以告诉我们。如果他的解决方案对你有帮助,你可以将他的答案标记为,你可以帮助更多的论坛用户。在图形浏览器中工作良好。看起来我需要实现委托权限,这是一个pita-文档说“需要以下权限之一”,那么他们错了吗@MattB你能问一个新问题并将我引向你的问题链接吗?我在这里提出了一个问题:-但我认为上面的问题涵盖了这一点,你的回答让我走上了正轨。
{
    "Content-Type": "application/json",
    "Authorization": "Bearer {TOKEN}"
}
{
    "@odata.type": "#microsoft.graph.aadUserConversationMember",
    "roles": ["member"],
    "user@odata.bind": "https://graph.microsoft.com/v1.0/users('{GUEST_MEMBER_ID}')"
}