为什么允许code_challenge_method=plain?

问题描述 投票:0回答:1

根据https://auth0.com/docs/get-started/authentication-and-authorization-flow/call-your-api-using-the-authorization-code-flow-with-pkce

PKCE规范定义了两种方法,S256和plain,前者使用 在此示例中,它是自 Auth0 以来唯一支持的一个 后者不鼓励。

为什么他们设计得如此

plain
甚至是一个可以使用的有效值?

如果您使用

plain
,那么如果授权码被盗,
code_verifier
也可能被盗,因为它与
code_challenge
的值相同。

我完全不明白这如何增加任何安全性。

oauth-2.0 openid-connect pkce
1个回答
0
投票

规格说明:

如果客户端能够使用“S256”,则必须使用“S256”,因为
“S256”是服务器上强制实施(MTI)的。客户是
仅当他们不能支持“S256”时才允许使用“plain”
技术原因并通过带外配置知道
服务器支持“普通”。

简单的转换是为了与现有的兼容
部署以及无法使用 S256 的受限环境
转变。

所以我猜它只是出于向后兼容性的原因而出现在规范中。

来源:https://www.rfc-editor.org/rfc/rfc7636

© www.soinside.com 2019 - 2024. All rights reserved.