簡體   English   中英

Spring Keycloak - 如何從 JWT 訪問令牌設置主體

[英]Spring Keycloak - How to set principal from JWT access token

我已經在這大約一個星期了。

我有一個用例,我通過主體而不是標頭接收身份驗證令牌,因此 Keycloak 和 Spring 不會自動設置用戶。 (原因是,使用 websockets,我只能通過具有初始連接的主體發送身份驗證令牌)

我試過在 keycloak 之前攔截調用並將令牌從正文復制到標題,但這不起作用。

所以現在我想通過 keycloak 手動進行身份驗證(或者只是手動設置主體用戶)。 我可以訪問 JWT 訪問令牌,但從這里我不確定如何使用 keycloak 進行身份驗證。

有人有任何意見嗎?

由於有兩個 Keycloak 部件可以在這里發揮作用,我首先要澄清一下:

  • Keycloak - 這是客戶端將用來獲取 JWT 的授權服務器
  • Keycloak Adapter - 這是配置資源服務器以將 Keycloak 與 Spring Security 集成的東西

我有一個用例,我通過主體而不是標頭接收身份驗證令牌,因此 Keycloak 和 Spring 不會自動設置用戶。

Spring Security 5.1 附帶對基於 JWT 的訪問令牌的內置支持,因此您可能不需要使用 Keycloak Adapter 來完成您想要做的事情。

在使用 Spring Security 的內置支持時,可以配置DefaultBearerTokenResolver來查看正文:

@Bean
public BearerTokenResolver bearerTokenResolver() {
    DefaultBearerTokenResolver resolver =
            new DefaultBearerTokenResolver();
    resolver.setAllowFormEncodedBodyParameter(true);
    return resolver;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM