gpt4 book ai didi

oauth-2.0 - 将 Google OIDC 与代码流和 PKCE 结合使用

转载 作者:行者123 更新时间:2023-12-03 09:27:38 24 4
gpt4 key购买 nike

经过反复试验,在我看来,Google OIDC 在不提供客户端密码的情况下不支持代码流:
https://developers.google.com/identity/protocols/oauth2/native-app#exchange-authorization-code
根据 SPA 的最新最佳实践 (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics-13),推荐使用代码流 + PKCE 来处理身份验证。是否有人知道使 Google 的代码流接受 code_challenge 而不是 client_secret 所需的任何技巧?也许是一个虚假的 secret ?

最佳答案

截至 2020 年 8 月,引用的最佳实践文档仍处于草稿阶段,正在积极更新 - 此处主要修订:https://datatracker.ietf.org/doc/draft-ietf-oauth-security-topics/ . Google 的 OAuth2 实现尚未将 PKCE 的“正在进行中”的建议应用于 Web 应用程序。 SPA 仍被指示使用 Google 在线文档中的隐式流程:https://developers.google.com/identity/protocols/oauth2/javascript-implicit-flow )。
PKCE 标准 (https://www.rfc-editor.org/rfc/rfc7636) 详细说明它是为缓解在移动平台上发现的授权代码拦截攻击而开发的,最初建议由本地客户端实现。 Google 的“移动和桌面应用程序”文档确实指导开发人员使用 PKCE 授权代码流程。使用带有 PKCE 的 Google Android、iOS 或 Windows 存储凭证类型的客户端可以省略 client_secret (请参阅刷新 token 参数表上的注释 - 并由 Cristiano 确认)。
现在认识到 PKCE 消除了任何公共(public)客户端存储客户端 secret 的需要,因此可用于弃用隐式流,该流总是存在在重定向 URI 中包含返回的访问和身份 token 的缺陷。 https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead .
IETF 文件草案在第 2.1.1 节中指出,这种认可很可能会成为一个已发布的标准。
希望 Google 将更新其实现以删除对 client_secret 的要求当最佳实践被接受时的 PKCE token 请求。与此同时,我们似乎别无选择,只能继续使用隐式流程编写 SPA。

关于oauth-2.0 - 将 Google OIDC 与代码流和 PKCE 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60724690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com