簡體   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