keycloak,为什么后端通道需要重定向 url

keycloak, why does backend channels need a redirect url

我尝试使用 openid connect 将我的 Python 应用程序(后端客户端)集成到 Keycloak 系统中,为什么我必须填写 Valid Redirect URIs 字段?根据我对OAuth 2.0的理解,后端通道只需要在Authorization Code Flow过程

中交换id和访问令牌的代码

这里为什么要重定向URL,不是只填在前端客户端吗?

有什么想法吗?

我们需要它来限制 URL 我们在成功登录后可以重定向到的内容。我们这样做是为了提高您的用户的安全性,因为如果提供商可以在登录后重定向到任何 URL,那将是一个很大的安全问题。

接收授权代码的客户端和交换代码以获取令牌的客户端必须是同一个客户端 - 至少从授权服务器的角度来看。从理论上讲,您可以有单独的应用程序来处理部分 OAuth 流程,但它们必须使用相同的客户端 ID。

理想情况下,重定向 URI 指向由您的 Python 后端公开的端点。 Keycloak(或任何授权服务器)完成身份验证和授权后,它将用户与授权代码一起重定向到该端点。这样授权代码将直接进入后端客户端,前端应用程序永远不必处理它。通过注册 URL,您希望确保没有人使用您的客户端 ID 执行授权,而是要求将代码发送到另一个应用程序。