FastAPI 集成 OAuth2 PAR 与 JAR:为公共客户端打造抗钓鱼的授权流程

3 阅读1分钟

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=