【问题标题】:Microsoft graph People list /me/people returning 403: ForbiddenMicrosoft graph People list /me/people 返回 403:禁止
【发布时间】:2018-08-04 15:11:57
【问题描述】:

我们正在使用 /v1.0/me/people api 从 MS Graph 为用户获取相关人员。当前设置从 2017 年 10 月到 2018 年 4 月一直有效,现在 API 调用返回 403 Forbidden。我发现这个 API 现在需要 People.Read 范围才能工作(https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/user_list_people)。我当前的令牌具有范围:User.Read User.Read.All User.ReadBasic.All。我已尝试从 Azure 门户修改应用注册中的权限,并已将此权限保存在 MS Graph -“委派权限”下:“读取用户的相关人员列表”。但我的令牌似乎仍然没有 People.Read 范围。并且图形 api 正在返回 403。

附加我的JWT令牌以及样品:eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFEWHpaM2lmci1HUmJEVDQ1ek5TRUZFTE8wUnB0OU16N19TX3BRVC1VeFBld0kxQndycmd3OGdHc1Y5b054R1h2eFA2WXhITlB5cWE3aTFDNzFsRkVQclltUmdnczRySnhPNzlFRmlqV0lnZmlBQSIsImFsZyI6IlJTMjU2IiwieDV0IjoiN19adWYxdHZrd0x4WWFIUzNxNmxValVZSUd3Iiwia2lkIjoiN19adWYxdHZrd0x4WWFIUzNxNmxValVZSUd3In0.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTUzMzI4OTUxOCwibmJmIjoxNTMzMjg5NTE4LCJleHAiOjE1MzMyOTM2NzgsImFjY3QiOjAsImFjciI6IjEiLCJhaW8iOiJBVVFBdS84SUFBQUFrR3IwbG14OHZMcVFacElaeHlHM0x6V0FRbUdkUVA3K2hwK3JXbTQ5MmJtWmRyQ2VDczBqeDVSMHk3ZkZhQ1lNM3B0UWVYQjVVMVNoYm1ZSGdiaGRMUT09IiwiYW1yIjpbIndpYSIsIm1mYSJdLCJhcHBfZGlzcGxheW5hbWUiOiJQaW5nU2VydmljZXNMb2NhbCIsImFwcGlkIjoiYTA3MDQ5MTYtMjc4Zi00ZTM3LWI1NDYtNTJjNjlhNGIyYTlkIiwiYXBwaWRhY3IiOiIxIiwiZV9leHAiOjI2MzA2MCwiZmFtaWx5X25hbWUiOiJCZXJhIiwiZ2l2ZW5fbmFtZSI6IlNvdXJhamVldCIsImluX2NvcnAiOiJ0cnVl IiwiaXBhZGRyIjoiMTY3LjIyMC4yMzguMjciLCJuYW1lIjoiU291cmFqZWV0IEJlcmEiLCJvaWQiOiJhZjBhZjE0Zi0wOTljLTQxYTktYWJjZC02NmJkZDI0NDg4N2IiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjE0Njc3MzA4NS05MDMzNjMyODUtNzE5MzQ0NzA3LTE0NDU2ODMiLCJwbGF0ZiI6IjMiLCJwdWlkIjoiMTAwMzdGRkU4MjE4RTU3MiIsInNjcCI6IlVzZXIuUmVhZCBVc2VyLlJlYWQuQWxsIFVzZXIuUmVhZEJhc2ljLkFsbCIsInN1YiI6IkE0N2R0SzlEMW1zUG42SGliNE9ZcWNEam5PNW41MUw1OVh2ZGFPZUxOaVEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6InNvYmVyYUBtaWNyb3NvZnQuY29tIiwidXBuIjoic29iZXJhQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxTzEzUl9kZmNrcUF6S3JiYUZJRUFBIiwidmVyIjoiMS4wIn0.Wf6Q51AwRIpliIn-3iyyAP9JFQONvc-5ij60gHjp9WJGzJY2BMDudQNRLTo8VTNhbOr7zSEjZkC1eKikumDpsoD0wblemCfpb56jNPLe8SFCHdqbtnxQGu-KHLp4io40-QPYfVnzvKRG9ZV-xauxorjXSeIx6W6rHNz3WR6Gmz5KwR-fqlutN-8yWYu_LK1S0bkuQOPGO3tGYp2cZnwbOverv3O0ZBeYAkNC_N1ssLES4dElzp_YieU3w7F5RqJbdQmQKwBgH4UJf_YSlzGnUQNqmIgpdK3jFtTP-IbvFIVDNcIElViFwa0zmQLAPilcbxr6gtFWI72sFlDxDPpI_Q P>

【问题讨论】:

  • 我不确定您是否要公开发布您的访问令牌。它包含data,例如 ip 地址、用户电子邮件或您的租户 ID。只是一个友好的提示,因为我不确定你是否对此感到满意。
  • 你试过Microsoft graph explorer测试它

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

每次更改应用程序的权限时,Authorization- 或 Admin-Consent 必须重复。
这是出于安全原因,因此任何应用都不能默默地获取更多权利和间谍/伤害用户。

授权请求似乎没有重复,因为您仍然拥有所有旧权限。

我不知道您是如何生成访问令牌的,但您很可能使用refresh token,因为通过这种生成访问令牌的方式,用户不会重新授权您的应用, 因此,您新添加的权限从未重复授权。

如果这适用于您,请尝试重复您的同意,然后获取一个新令牌(以确保这不会超过刷新令牌)并检查问题是否仍然存在。

【讨论】:

    【解决方案2】:

    有时在注册应用后更改权限时,令牌缓存会导致您的应用使用旧令牌。解决此问题的最简单方法是注销您的应用程序并返回您的登录页面,在地址栏中的最后添加“&prompt=consent”(因此 login.microsoftonline.com/blabla&prompt=consent)并按 Enter。现在,登录时将提示您再次同意。

    还要小心在线共享您的令牌,您可以使用 jwt.ms 来显示您的令牌背后的数据,然后简单地将相关内容复制粘贴到此处。

    【讨论】:

      【解决方案3】:

      有一段时间 /me/people API 接受 User.Read。它大约在您提到的时间进行了更新,以便它与需要 People.Read 或 People.Read.All 的文档相匹配,具体取决于您正在拨打的电话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多