我正在记录我们的应用程序的登录流,该应用程序使用keycloft进行登录。我看到,当请求带有授权码的令牌时,Keycloft不使用状态参数:
POST/auth/rems/myrealm/protocol/openid connect/token……
Key斗篷GUI中是否有一个设置,我可以在其中使用状态参数和授权代码来制作Key斗篷,如中所述https://auth0.com/docs/secure/attack-protection/state-parameters?或者还有其他方法可以实现这一点吗?
State参数将仅在请求和响应之间的授权代码流中使用,而不会进一步使用
这意味着,在第一个请求中,您可以生成一个随机值,并将其与状态参数关联,如下所示
http://localhost:8080/auth/realms/REALM1/protocol/openid-connect/auth/?client_id=Client1&state=RandomValue123&redirect_uri=http://localhost:8081...
注意:我没有显示完整的授权url并删除其他参数
一旦用户登录成功,密钥斗篷将用授权码和上面发送的状态参数值回复您的重定向url。
http://localhost:8081?code=abc&state=RandonValue123
这将结束状态参数的使用,并且它不会在您的下一次访问令牌或刷新令牌调用中使用。
一个简单的解释是,您的第一次身份验证调用和来自keycapture的响应之间存在一些关系,更详细的解释可以在这里找到->';状态';OAuth授权请求中的参数
状态参数由初始化登录的一方创建,然后Key斗篷在完成凭据验证后应返回相同的状态参数。所有这些都是在将代码交换为access_token之前完成的。