Microsoft图-使用client_credentials流访问/ me或/ user / {id} /端点-请求的用户无效

问题描述 投票:4回答:1

我们正在使用client_credentials流来获取我们的应用程序对租户环境的访问权限。该应用程序具有正确的作用域,并且我们获得了可用于其他端点的访问令牌,例如/users,但是在执行以下请求时,我们会收到错误消息。

GET https://graph.microsoft.com/beta/me/findRooms
{
    "error": {
        "code": "ErrorInvalidUser",
        "message": "The requested user '{userId}@{tenantId}' is invalid.",
        "innerError": {
            "request-id": "b72d26a3-d0ad-42eb-a3d3-35951cb42b3d",
            "date": "2020-01-21T10:21:28"
        }
    }
}

我了解当我们只是一个应用程序时没有“我”,但是在这种情况下,我们如何访问这些类型的端点?我还必须要有一个用户来扮演吗?在我看来,这似乎违背了这样的守护程序的目的。在此问题上找不到任何清晰的文档。在[[使​​用令牌部分上的文档的this page中,他们甚至引用了/ me端点,在这种情况下是不正确的。

我尝试用访问令牌中可以找到的所有不同种类的ID请求/users/{id}/findRooms端点-它们都不起作用。遇到相同问题的其他人尚未解决。

1. Feedback area in docs

2. Github issue

最好的问候,克里斯托弗

oauth microsoft-graph
1个回答
0
投票
使用/users/{user-id}是唯一适用于客户端凭据的模式。在您的情况下,这应该可以工作,因此,可能是您使用的id出现了问题。

为了确保我不会给您不好的信息,我只是使用客户端凭据流中的仅应用程序令牌对此进行了测试。在https://jwt.ms处解析该令牌,我看到roles声明如下:

© www.soinside.com 2019 - 2024. All rights reserved.