Member-only story
FastAPI + OAuth2 PAR & JAR:为公共客户端打造抗钓鱼的授权流程
通过推送和签名授权请求,升级 SPA 与移动端 App 的 OAuth 登录流程 —— 减少参数篡改,避免“重定向 URI 意外”,在真实威胁环境下实现更安全的登录。
Codastra
6 分钟阅读 · 1 天前
51
Listen
Share
在 FastAPI 中实现 OAuth2 PAR 和 JAR,加固公共客户端登录流程 —— 签名请求、推送参数与抗钓鱼授权。
OAuth 在公共客户端中的登录流程,往往是安全建议失效的地方。
因为理想路径下的演示看起来很干净…… 但真实的互联网并非如此。
移动应用会遭遇深度链接劫持,单页应用(SPA)会将查询参数泄露到日志中,重定向 URI 会留下“就这一次例外”的隐患。而且总有人会在某个地方,点击一个看起来完美无缺的伪造“Sign in with…”按钮。
于是你加了 PKCE,很好。你锁定了重定向 URI,也很好。
但你仍然面临一个问题:授权请求本身是脆弱的。
这时,PAR(推送授权请求) 和 JAR(JWT 签名的授权请求) 就像两位安静的成年人出现在派对上。
PAR 将敏感的请求参数移出前端信道(浏览器 URL)…… CSD0tFqvECLokhw9aBeRqvTiRAk25wc+e0X6/9I79nrZhKDIwHBxRZnKamPJkqbn5oX8DesEGv1ASrhQo2HfxjzJ+KGWYHxR4wzXZ4EeaDrXd2fnMY2idxs7sV2gTVgLoXPHrzH9fZN99FZsTXM3r+2aGOZXXqLx/yzY+LLyfJ4=