Azure应用注册redirect URI修改的安全影响及我的假设是否正确?
关于Entra应用注册中Redirect URI变更的安全疑问
微软的应用安全操作指南建议对Entra应用注册中的redirect URIs变更设置告警。
redirect URI(或称reply URL)是应用成功授权并获得授权码或访问令牌后,授权服务器将用户重定向到的位置。授权服务器会将代码或令牌发送至该redirect URI,因此微软建议安全团队在应用注册流程中注册正确的地址。
在学习了OAuth和redirect URIs相关内容后,我未发现这会构成严重安全隐患(若有误,恳请指正,特此请教)。根据OAuth文档,有三种场景需要验证重定向URL:
- 开发者创建应用时注册重定向URL
- 授权请求阶段
- 应用使用授权码交换访问令牌时


Entra会根据发送至授权服务器(Entra ID)请求中的client_id参数,验证Azure租户内已注册应用的redirect URIs。若有人拦截请求并将redirect URI替换为攻击者控制的端点,此操作会失败并触发aadsts50011-reply-url-mismatch错误。

我梳理了以下几种场景:
- 由于Entra要求在应用注册流程中提供
redirect URI,它会根据client_id验证请求中的redirect_uri参数是否匹配已注册值,这会使攻击者在请求到达授权服务器前修改重定向URI至其控制端点的操作失效。 - 仅在应用注册中添加
redirect URI并不足够,还需确保应用在构造请求时知晓该redirectURI(如下为门户快速入门教程中的代码片段)。因此我认为,若有人添加/替换新的redirect URI但未修改应用代码,合法使用应用时不会生效。

- 基于场景2,假设拥有足够权限的用户被钓鱼,攻击者成功为应用添加了恶意控制端点作为新的
redirect URI,虽无法访问应用代码,但可通过构造包含该恶意redirect_uri的链接钓鱼用户点击。
此外,针对所谓的dangling redirect URIs(悬空重定向URI),有技术可用于检测。根据相关描述,攻击者需知晓应用注册信息(即client_id),即便获取该信息并创建使用“孤立”应用注册中redirect uri的新应用,仍需用户点击链接才能完成攻击。
我认同需对此类变更进行监控,尤其是变更管理流程外的操作,但这不太可能是攻击者快速得手的手段(我也清楚当前Azure实现可能无漏洞,但未来或因OAuth协议新漏洞发生变化)。请问我的这些高层假设是否正确?
内容的提问来源于stack exchange,提问作者newby88
相关产品推荐
相关产品推荐

