簡體   English   中英

如何使用Keyclaok Rest API為用戶獲取更多/可選數據?

[英]How to get more/optional data for users using keyclaok rest api?

我們將Keycloak用於SSO,特別是我們能夠使用REST API /admin/realms/{realm}/users獲取Keycloak領域中的基本用戶詳細信息,我們得到的響應是UserRepresentation ,它似乎已經提供了同樣適用於realmRolesclientRoles ,但默認情況下不是必需的/ false。

我們有一個獲取所有用戶角色的新要求,我看到要獲得這些角色還需要公開其他API: /auth/admin/realms/realm/users/user-id/role-mappings/realm/ ,但這意味着觸發另一個請求,如果我們有2k用戶,則意味着再增加2k個請求。

我的問題是,由於UserRepresentation也具有realmRolesclientRoles屬性,但默認情況下似乎是可選的,我如何在觸發請求/admin/realms/{realm}/users啟用這些屬性,並避免獲取角色的額外請求。

恐怕不可能在一個請求中獲得所需的數據:僅通過查看在UsersResource中獲取所有用戶的源代碼,您會看到realmRolesclientRoles從未被填充。

話雖如此,您可以做一件事- 通過實現SPI編寫自己的REST資源 實際上,過去我在組資源方面存在類似的問題,最終我編寫了自己的資源。 在這種情況下,您將只需要使用一種方法來編寫自定義資源-使所有用戶都具有角色。 您可以只復制粘貼當前的keycloak邏輯並添加額外的位或擴展內置的UsersResource。 但是,這不是一個簡單的方法-從長遠來看,您將需要維護自己的代碼,並且如果某些界面會發生更改,升級到最新的密鑰庫可能不是那么簡單。

暫無
暫無

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

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