繁体   English   中英

Keycloak 注销响应 414

[英]Keycloak logout response 414

GET /realms/[REALM_NAME]/protocol/openid-connect/logout?post_logout_redirect_uri=[...]&id_token_hint=[..very large jwt-token >4096..]
  • 响应414 (Uri 长(链接
  • 密钥斗篷版本:v20.0.1
  • 预期:成功的注销重定向。 上面的请求应该响应302

注销 URI 路径似乎太长了。 keycloak quarkus 服务的默认长度为 4096 字节( 链接)。

  • 当您的 id_token_hint 太大时会发生这种情况

为 quarkus 参数quarkus.http.limits.max-initial-line-length设置更高的长度 ...

  • 作为 java 参数-quarkus.http.limits.max-initial-line-length=8192
  • 或者环境变量QUARKUS_HTTP_LIMITS_MAX_INITIAL_LINE_LENGTH=8192

AFAIK,您应该将ID 令牌传递给id_token_hint而不是和access token OpenID Connect 标准(第 2 节 RP 发起的注销)中可以读到:

此规范定义了在注销端点的注销请求中使用的以下参数:

id_token_hint推荐。 ID Token 先前由 OP 发布给 RP,传递给注销端点,作为有关最终用户当前通过客户端验证的 session 的提示。 这用作 RP 请求由 OP 注销的最终用户身份的指示。

所以你需要传递id_token_hint=<id_token> 您可以通过使用scope=openid调用令牌端点来获取ID 令牌 例如,当用户通过浏览器登录时,如果您请求包含scope=openid ,您将获得(连同刷新访问令牌)用户ID 令牌

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM