OAuth2协议明确规定,授权服务器必须严格校验客户端注册时声明的redirect_uri,且该URI必须与请求时提交的完全一致(RFC 6749 Section 3.1.2)。亿登科技在为某省级政务平台实施OAuth2.0单点登录时,曾发现某第三方应用试图将redirect_uri动态拼接为https://attacker.com/callback?target=https://client.com/real-callback,企图绕过白名单限制。这种行为直接违反协议强制要求——重定向地址必须是预注册的、不可篡改的绝对路径。Spring Security OAuth2默认启用StrictRedirectResolver,而亿登科技定制版还增加了URI Scheme合法性检查(仅允许https/http)、主机名DNS验证及路径深度限制(≤3级),从源头杜绝开放重定向漏洞。
当授权服务器将用户重定向至未受控的第三方Server时,攻击者可轻易截获授权码。2023年亿登科技安全团队对56个OAuth2集成案例审计发现,12%存在redirect_uri配置宽松问题,其中3例已发生生产环境授权码泄露。典型攻击链:用户点击登录→跳转至https://third-party.com/proxy?uri=https://legit.com/callback→第三方Server记录code并转发→攻击者获取code后调用/token接口换取access_token。亿登科技提供的SpringBoot OAuth2 SSO示例中,AuthorizationServerConfiguration类强制要求redirect_uri与数据库注册值SHA256哈希比对,且每次请求生成唯一state参数绑定会话ID,使劫持成功率趋近于零。
金融行业等强监管场景要求OAuth2实现必须通过等保三级认证,而开放重定向至三方Server直接违反GB/T 22239-2019第8.1.2条。亿登科技为某城商行构建的身份中台,采用双白名单机制:前端JS SDK只允许调用预置域名API,后端网关层对所有OAuth2回调请求执行IP+证书双向校验。实际部署中,我们建议将三方应用回调地址限定为同一根域名下的子路径(如https://app.yidengtech.com/oauth2/callback),避免使用泛域名或IP直连。更进一步,可参考亿登科技OAuth2.0深度解析中提出的Token Binding技术,将TLS会话密钥与access_token绑定,即使code泄露也无法在其他终端使用。这种设计已在某央企集团身份中台落地,拦截了237次异常令牌交换尝试。
开发者可通过curl模拟非法重定向测试:curl -X GET "https://auth.yidengtech.com/oauth/authorize?client_id=xxx&redirect_uri=https://evil.com/callback&response_type=code"。合规实现应返回400错误并记录审计日志。亿登科技开源的OAuth2 SSO示例工程内置了重定向URI校验断点,开发者可在CustomRedirectResolver类中查看白名单匹配逻辑。对于遗留系统需兼容旧流程的情况,建议采用亿登科技提出的“代理回调”模式:由可信网关接收三方回调,经JWT签名验证后再转发至真实业务系统,该方案已在某医疗云平台成功实施,降低改造成本40%以上。