oauth-2.0 Keycloak -使用带状态参数的授权码

ffvjumwh  于 2022-10-31  发布在  其他
关注(0)|答案(2)|浏览(247)

我记录了使用keycloak登录的应用程序的登录流程。我看到在请求带有授权码的令牌时,Keycloak不使用状态参数:
.... POST /身份验证/领域/我的领域/协议/开放ID连接/令牌....
在Keycloak GUI中是否有一个设置,在那里我可以使用状态参数和授权码(如https://auth0.com/docs/secure/attack-protection/state-parameters中所述)来创建Keycloak?或者有其他方法来实现这一点吗?

ffx8fchx

ffx8fchx1#

状态参数将仅在请求和响应之间的授权代码流中使用,而不会进一步使用。
也就是说,在第一个请求中,您可以生成一个随机值,并将其与state参数关联,如下所示。
http://localhost:8081?code=abc&state=RandonValue123

  • 注意:我没有显示完整的授权URL,也没有删除其他参数 *

一旦用户登录成功,keycloak将用授权码和上面发送的state参数值响应您的重定向URL。
http://localhost:8081?code=abc&state=RandonValue123
这将结束状态参数的使用,并且不会在下一个访问令牌或刷新令牌调用中使用。
一个简单的解释是,您的第一个auth调用和keycloak的响应之间存在某种关系,更详细的解释可以在这里找到-〉What is the purpose of the 'state' parameter in OAuth authorization request

lx0bsm1f

lx0bsm1f2#

状态参数由初始化登录的一方创建,然后Keycloak在完成其凭据验证后应返回相同的状态参数。所有这些都是在交换access_token代码之前。

相关问题