【发布时间】:2021-08-03 15:08:51
【问题描述】:
由于 PKCE 现在是推荐的隐式流授权方法,因此我正在寻找处理代码验证程序的最佳实践以及有关如何完成此操作的建议。高级 PKCE 授权流程包括:
- 在客户端生成
code_verifier - 从 (1) 生成
code_challenge - 点击
/authorise和code_challenge重定向到选择idp 并且在回调中有一个code - 使用 (3) 中的
code和code_verifier交换访问令牌
问题是,在第 3 步中,在应用程序重定向到授权服务器和 idp 之前,必须将code_verifier 存储在某处。 那是什么地方?
似乎像okta-oidc-js 这样的库将code_verifier 存储在 sessionStorage 中。这不会让您受到 XSS 攻击吗?即如果我在应用程序进入授权流程并重定向之前将code_verifier存储在sessionStorage中,在回调中,是什么阻止了一些胭脂扩展从url读取code和从sessionStorage读取code_verifier?两者的组合可用于交换访问令牌。
【问题讨论】:
标签: oauth-2.0 authorization openid-connect auth0 pkce