跨租户admin consent后重定向至应用出现Unauthorized问题求助
跨租户Admin Consent重定向后未授权问题解决方案
问题核心
跨租户完成管理员授权后,重定向URL携带scope参数时应用返回“Unauthorized!!!”,移除该参数即可正常访问,本质是应用对重定向参数的处理或权限校验逻辑存在问题。
可能原因
- 重定向回调的
scope参数解析错误:原授权请求中多个scope未用空格分隔(连写在一起),导致重返回的scope格式异常,应用解析时触发错误判断 - 权限校验逻辑误用参数:应用错误地将重定向URL里的
scope参数当作用户实际权限凭证,而非仅作为授权范围的参考值
具体解决步骤
修正授权请求的Scope格式
发起admin consent的URL中,多个scope必须用空格(URL编码为%20)分隔,原请求中两个scope连写是错误的,正确的请求URL应为:https://login.microsoftonline.com/{tenant}/v2.0/adminconsent?client_id=6731de76-14a6-49ae-97bc-6eba6914391e&scope=https://graph.microsoft.com/Calendars.Read%20https://graph.microsoft.com/Mail.Send&redirect_uri=http://localhost/myapp/permissions规范的参数格式能避免重定向返回的
scope出现解析异常。调整回调页面的参数处理逻辑
在/permissions回调页面,直接忽略URL中的scope参数,不要将其用于权限校验。该参数仅表示本次授权的权限列表,真正的权限验证需要通过后续获取的access token中的scp/roles字段来判断。修正权限校验逻辑
确保应用的权限校验逻辑完全基于access token的内容:admin consent完成后,通过授权码流程获取token,解析token中的权限声明来判断用户是否有权限访问应用,而非依赖重定向URL的scope参数。
内容的提问来源于stack exchange,提问作者bilal_khan
相关产品推荐
相关产品推荐

