我们正在使用/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
答案 0 :(得分:2)
每次您更改应用权限时,Authorization-或Admin-同意
必须重复。
这是出于安全原因,因此没有任何应用程序可以静默获得更多权限并监视/伤害用户。
似乎没有重复执行“授权请求”,因为您仍然拥有所有旧权限。
我不知道您如何生成访问令牌,但是您很可能会使用refresh token,因为这种生成访问令牌的方式是用户不会重新授权您的应用, 因此,从未使用您新添加的权限重复进行授权。
如果这适用于您尝试重复您的同意,则获取一个新令牌(只是确保它不在刷新令牌上)并检查问题是否仍然存在。
答案 1 :(得分:0)
有时在为应用程序重新注册后更改权限时,令牌缓存会导致您的应用程序使用旧令牌。解决此问题的最简单方法是注销应用程序并返回登录页面,在地址栏中最后添加“&prompt = consent”(因此,login.microsoftonline.com / blabla&prompt = consent),然后按Enter键。现在,将提示您登录时再次同意。
还要谨慎地在线共享令牌,您可以使用jwt.ms来显示令牌背后的数据,然后只需将相关内容复制粘贴到此处即可。
答案 2 :(得分:0)
/ me / people API接受User.Read一段时间。它在您提到的时间前后进行了更新,以使其与根据您进行的呼叫需要People.Read或People.Read.All的文档相匹配。