【问题标题】:Authorization Code PKCE - can backend request token using the code?授权代码 PKCE - 可以使用该代码后端请求令牌吗?
【发布时间】:2021-03-07 05:20:05
【问题描述】:

在授权码流程中。 前端可以向后端发送验证码,后端可以使用来自验证服务器的验证码请求令牌。

现在假设我们有 SPA 前端,并使用了 PKCE。 前端是否仍然有可能将代码发送到后端,后端使用其客户端凭据请求令牌? 我的意思是,后端不知道前端生成的proof key secret。

【问题讨论】:

    标签: oauth openid-connect


    【解决方案1】:

    您不会将 PKCE 与客户端密码混合并匹配,但常见的解决方案是通过后端代理授权代码授予消息:

    • 将 PKCE 验证器从浏览器发送到后端
    • 然后将验证者发送到授权服务器

    这可以是一种将访问令牌或刷新令牌或两者都保留在浏览器之外的机制。例如,我的Sample SPA 就是这样工作的。

    【讨论】:

    • 谢谢!还有一个问题。 OAuth 中是否允许后端获取一个令牌(由前端使用 pkce 创建)而不使用 pkce 但具有自己的客户端凭据?我的意思是,在这种情况下,前端使用 pkce,而后端 - 客户端凭据。
    • 那行不通 - 您要么使用授权代码流(带有客户端密码),要么使用授权代码流 (PKCE)。授权服务器根据第一步(授权重定向)的参数验证每个流程的第二步(授权码授予)。
    猜你喜欢
    • 2020-07-19
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2018-08-20
    • 2021-03-18
    相关资源
    最近更新 更多