oauth 2:禁用pkce,有什么风险?仅网络应用程序我可以安全地禁用它吗?

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

我最近接到一项任务,要将另一个应用程序合并到我们的平台中。 我有一个用 React 编写的登录组件。我想将其重新用于身份验证,并且仅根据需要将重定向 URL 更改为第二个应用程序。 (如果这个场景不言自明,想象一下有一个带有 oauth 身份验证的主应用程序和一个需要通过相同身份验证机制的分析应用程序或文档应用程序) 所以有什么问题? 问题是 pkce 我无法在一个应用程序中启动 oauth 2 以在另一个站点结束来完成身份验证(没有在第一个应用程序中创建的代码质询)。 我决定禁用 pkce,因为我们的平台仅适用于网络。 因此,保留在我的 keycloak 中的重定向 URL 应该足够了,我可以在第二个应用程序中完成 oauth。然后我看到 oauth 2.1 https://oauth.net/2.1/ 打算强制执行 pkce。 事情是为什么?我认为安全性还应该考虑到开发的便利性,我不应该被要求重复登录组件。难道我做错了什么?我应该采用另一种方法吗? 感谢您的回答

我开发了一个带有 oauth2 并禁用了 pkce 的应用程序,我认为它是可选的,因为它应该有助于移动应用程序,但刚刚在官方 oauth 2 网站上看到他们打算强制执行 pkce。

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

一般来说,发起身份验证请求的应用程序也应该是完成身份验证请求的应用程序,否则,您将面临许多风险。

如果您想根据最佳实践确保其安全,则应该检查多项安全功能。 PKCE 是其中之一,但还有 statenonce 参数,您应该验证它们是否与原始值匹配。

我最近在这里发表了有关状态和随机数参数的博客:

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