知识卡片

OIDC授权码流程的中间步骤

专业/工作 · 526.a.1

内容

OIDC 认证涉及三个角色:负责认证用户并签发令牌的授权服务器,被验证身份的用户,以及要求用户完成认证的客户端应用。整个流程分四步:客户端把浏览器重定向到授权服务器;授权服务器验证完用户身份后,不是直接把令牌塞给浏览器,而是先重定向回客户端并带上一个”授权码”;客户端拿这个授权码去问授权服务器换取真正的 ID 令牌;客户端基于这个令牌和浏览器建立起带会话 cookie 的登录态。中间这步”先换授权码、再换令牌”看起来像是多此一举,实际上是关键的安全屏障——授权码只在浏览器和客户端之间的重定向里短暂出现,真正敏感的令牌交换发生在客户端和授权服务器之间的后台通道,确保只有合法的、能证明自己身份的客户端才能拿到最终令牌,即便授权码在浏览器重定向途中被截获,攻击者没有客户端的凭据也换不出令牌。发散:这个”先给一次性凭证、再拿凭证换真正令牌”的两段式设计,本质上和很多”临时令牌换永久令牌”的安全模式同构——把最敏感的信息交换环节,尽量收窄到最难被中间人截获的那条通道上。

参考来源

《Cloud Native Spring in Action》第11章《Security: Authentication and SPA》