- 介紹
- 如何使用
- 客製化
- 支援的API
- 攻擊偵測
- 認證管理
- 客戶端屬性憑證
- 客戶端初始訪問
- 客戶註冊政策
- 客戶端角色映射
- 客戶範圍
- 客戶
- 成分
- 團體
- 身分提供者
- 鑰匙
- 協定映射器
- 領域管理員
- 角色映射器
- 角色
- 角色(按 ID)
- 範圍映射
- 用戶儲存提供者
- 使用者
- 根
介紹
這是一個 php 用戶端,可以輕鬆連接到 keycloak admin Rest api。
特徵:
- 方便使用
- 無需獲取令牌或生成它 - 它已經由客戶端處理
- 無需指定基本 uri 以外的任何 url
- 沒有對 json 進行編碼/解碼,只是您期望的數據
與 Keycloak 7.0+ 管理 REST API 搭配使用。
https://www.keycloak.org/documentation ->“管理 REST API”
如何使用
1. 建立新客戶端
$ client = Keycloak Admin KeycloakClient:: factory ([
' realm ' => ' master ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
' client_id ' => ' admin-cli ' ,
' baseUri ' => ' http://127.0.0.1:8180 ' ,
]);
從0.30版本開始,如果您的Keycloak基本URL以auth/
開頭,請將其新增至baseUri
(例如http://127.0.0.1:8180/auth/)。 Keycloak 版本 7 至 16 的基本 URL 系統地包含auth/
。在 Keycloak 17+ 上,這取決於您的設定。
2. 使用它
$ client -> getUsers ();
//Result
// Array of users
/*
[
[
"id" => "39839a9b-de08-4d2c-b91a-a6ce2595b1f3",
"createdTimestamp" => 1571663375749,
"username" => "admin",
"enabled" => true,
"totp" => false,
"emailVerified" => false,
"disableableCredentialTypes" => [
"password",
],
"requiredActions" => [],
"notBefore" => 0,
"access" => [
"manageGroupMembership" => true,
"view" => true,
"mapRoles" => true,
"impersonate" => true,
"manage" => true,
],
],
]
*/
$ client -> createUser ([
' username ' => ' test ' ,
' email ' => ' [email protected] ' ,
' enabled ' => true ,
' credentials ' => [
[
' type ' => ' password ' ,
' value ' => ' 1234 ' ,
],
],
]);
客製化
支援的憑證
可以透過變更 keycloak 用戶端的配置來變更用於身份驗證的憑證類型。
目前,支援以下憑證
- 密碼憑證,預設使用
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' password ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
]);
- 客戶憑證
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' client_credentials ' ,
' client_id ' => ' admin-cli ' ,
' client_secret ' => ' 84ab3d98-a0c3-44c7-b532-306f222ce1ff ' ,
]);
注入中介軟體
可以使用middlewares
關鍵字在 keycloak 用戶端配置中註入 Guzzle 用戶端中間件。
例如:
use GuzzleHttp Middleware ;
use Psr Http Message RequestInterface ;
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' middlewares ' => [
// throws exceptions when request fails
Middleware:: httpErrors (),
// other custom middlewares
Middleware:: mapRequest ( function ( RequestInterface $ request ) {
return $ request ;
}),
],
]);
更改令牌的保存和儲存方式
預設情況下,令牌在運行時會保存。這意味著創建新客戶端時不會使用先前的令牌。
您可以透過實作自己的TokenStorage
(描述如何儲存和檢索令牌的介面)來自訂令牌在客戶端設定中的儲存方式。
class CustomTokenStorage implements TokenStorage
{
public function getToken ()
{
// TODO
}
public function saveToken ( array $ token )
{
// TODO
}
}
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' token_storage ' => new CustomTokenStorage (),
]);
自訂 Keycloak 端點
可以使用custom_operations
關鍵字在 keycloak 用戶端設定中註入 Guzzle 服務操作。透過這種方式,您可以使用自訂擴充功能內建支援的端點。
$ client = KeycloakClient:: factory ([
...
' custom_operations ' => [
' getUsersByAttribute ' => [
' uri ' => ' /auth/realms/{realm}/userapi-rest/users/search-by-attr ' ,
' description ' => ' Get users by attribute Returns a list of users, filtered according to query parameters ' ,
' httpMethod ' => ' GET ' ,
' parameters ' => [
' realm ' => [
' location ' => ' uri ' ,
' description ' => ' The Realm name ' ,
' type ' => ' string ' ,
' required ' => true ,
],
' attr ' => [
' location ' => ' query ' ,
' type ' => ' string ' ,
' required ' => true ,
],
' value ' => [
' location ' => ' query ' ,
' type ' => ' string ' ,
' required ' => true ,
],
],
],
]
]);
支援的API
攻擊偵測
應用程式介面 | 函數名稱 | 支援 |
---|
清除所有用戶的所有用戶登入失敗這可以釋放臨時禁用的用戶 | 清除所有登入失敗 | ✔️ |
在暴力檢測中獲取用戶名的狀態 | 取得暴力破解用戶狀態 | ✔️ |
清除該用戶的所有用戶登入失敗這可以釋放臨時禁用的用戶 | 清除使用者登入失敗 | ✔️ |
認證管理
應用程式介面 | 函數名稱 | 支援 |
---|
取得身份驗證器提供者 傳回身份驗證器提供者的清單。 | 取得AuthenticatorProviders | ✔️ |
取得用戶端身份驗證器提供者 傳回客戶端身份驗證器提供者的清單。 | 取得ClientAuthenticatorProviders | ✔️ |
取得驗證器提供者的設定描述 | 取得AuthenticatorConfigInfo | ✔️ |
取得驗證器配置 | 取得AuthenticatorConfig | ✔️ |
更新驗證器配置 | 更新AuthenticatorConfig | ✔️ |
刪除驗證器配置 | 刪除AuthenticatorConfig | ✔️ |
新增的身份驗證執行 | 建立驗證執行 | ✔️ |
獲取單次執行 | 取得驗證執行 | ✔️ |
刪除執行 | 刪除驗證執行 | ✔️ |
使用新配置更新執行 | 更新驗證執行 | ✔️ |
降低執行優先權 | 降低身份驗證執行優先權 | ✔️ |
提高執行優先權 | 提高身份驗證執行優先級 | ✔️ |
建立新的身份驗證流程 | 建立認證流程 | ✔️ |
取得身份驗證流 傳回身份驗證流的清單。 | 取得身份驗證流 | ✔️ |
使用新名稱複製現有驗證流程新名稱作為傳遞的 JSON 物件的「newName」屬性給出 | 複製認證流程 | ✔️ |
取得流程的身份驗證執行 | getAuthenticationFlowExecutions | ✔️ |
更新流程的身份驗證執行 | updateAuthenticationFlowExecutions | ✔️ |
將新的身份驗證執行新增至流程中 | 建立身份驗證流程執行 | ✔️ |
將具有新執行的新流程新增至現有流程中 | 新增身份驗證流程執行 | ✔️ |
取得id的認證流程 | 取得認證流程 | ✔️ |
更新 id 的身份驗證流程 | 更新認證流程 | ✔️ |
刪除認證流程 | 刪除認證流程 | ✔️ |
取得表單操作提供者 傳回表單操作提供者的清單。 | 取得表單操作提供者 | ✔️ |
取得表單提供者 傳回表單提供者的清單。 | 取得表單提供者 | ✔️ |
取得所有客戶端的設定描述 | 取得客戶端設定描述 | ✔️ |
註冊新的所需操作 | 建立必需的操作 | ✔️ |
取得所需操作 傳回所需操作的清單。 | 取得所需的操作 | ✔️ |
取得別名所需的操作 | 取得別名所需操作 | ✔️ |
更新所需的操作 | 更新必需的操作 | ✔️ |
刪除所需的操作 | 刪除必需的操作 | ✔️ |
降低所需操作的優先權 | 降低所需操作優先權 | ✔️ |
提高所需操作的優先權 | 提高必要的操作優先權 | ✔️ |
取得未註冊的必要操作 傳回未註冊的必需操作的清單。 | 取得未註冊的必要操作 | ✔️ |
客戶端屬性憑證
應用程式介面 | 函數名稱 | 支援 |
---|
取得關鍵資訊(嘗試使用 attr = "jwt.credential") | 取得客戶端金鑰訊息 | ✔️ |
取得客戶端的keystore文件,包含私鑰和公鑰(註:將回應內容寫入文件) | 取得客戶端金鑰庫 | ✔️ |
使用新密鑰對產生新證書 | 產生客戶端憑證 | ✔️ |
產生新的金鑰對和證書,並取得私鑰檔案 產生金鑰對和憑證並以指定的金鑰庫格式提供私鑰。 | 產生下載客戶端證書 | ✔️ |
上傳證書並最終上傳私鑰 | 上傳客戶端憑證和私鑰 | ✔️ |
只上傳證書,不上傳私鑰 | 僅上傳客戶端證書 | ✔️ |
客戶端初始訪問
應用程式介面 | 函數名稱 | 支援 |
---|
建立新的初始訪問令牌。 | 建立客戶端初始存取令牌 | ✔️ |
GET /{realm}/客戶端初始訪問 | 取得客戶端初始存取令牌 | ✔️ |
刪除 /{realm}/clients-initial-access/{id} | 刪除ClientInitialAccessToken | ✔️ |
客戶註冊政策
應用程式介面 | 函數名稱 | 支援 |
---|
正確填入了 configProperties 的檢索提供者的基本路徑 | 取得客戶端註冊策略提供者 | ✔️ |
客戶端角色映射
應用程式介面 | 函數名稱 | 支援 |
---|
將客戶端等級角色新增至群組角色映射 | 新增群組客戶端角色映射 | ✔️ |
取得群組和應用程式的客戶端級角色映射 | 獲取群組客戶端角色映射 | ✔️ |
從群組角色映射中刪除客戶端等級角色 | 刪除GroupClientRoleMappings | ✔️ |
取得可對應到群組的可用客戶端等級角色 | 取得可用群組客戶端角色映射 | ✔️ |
獲得有效的客戶端級角色映射這會遞歸組的任何複合角色 | getGroupClientRoleMappingsWithComposite | ✔️ |
將客戶端等級角色新增至使用者角色映射 | 新增用戶客戶端角色映射 | ✔️ |
獲取使用者和應用程式的客戶端級角色映射 | 獲取用戶客戶端角色映射 | ✔️ |
從使用者角色映射中刪除客戶端等級角色 | 刪除UserClientRoleMappings | ✔️ |
取得可對應到使用者的可用客戶端級角色 | 取得可用用戶用戶端角色映射 | ✔️ |
獲取有效的客戶端級角色映射這會遞歸用戶的任何複合角色 | getUserClientRoleMappingsWithComposite | ✔️ |
客戶範圍
應用程式介面 | 函數名稱 | 支援 |
---|
建立新的客戶端範圍 客戶端範圍的名稱必須是唯一的! | 建立客戶端範圍 | ✔️ |
取得屬於該領域的客戶端範圍 傳回屬於該領域的客戶端範圍的列表 | 取得客戶端範圍 | ✔️ |
取得客戶端範圍的表示 | 取得客戶端範圍 | ✔️ |
更新客戶端範圍 | 更新客戶端範圍 | ✔️ |
刪除客戶端範圍 | 刪除客戶端範圍 | ✔️ |
客戶
應用程式介面 | 函數名稱 | 支援 |
---|
建立新客戶端 Client的client_id必須是唯一的! | 創建客戶端 | ✔️ |
取得屬於該領域的客戶端 傳回屬於該領域的客戶端列表 | 獲取客戶 | ✔️ |
獲取客戶代表 | 獲取客戶端 | ✔️ |
更新客戶端 | 更新客戶端 | ✔️ |
刪除客戶端 | 刪除客戶端 | ✔️ |
為客戶端產生新的秘密 | 產生客戶端秘密 | ✔️ |
取得客戶端秘密 | 取得客戶端密碼 | ✔️ |
取得預設客戶端範圍。 | 取得客戶端預設範圍 | ✔️ |
將客戶端範圍設定為預設範圍 | 設定客戶端作用域為預設值 | ✔️ |
從預設範圍中刪除客戶端範圍 | 刪除ClientScopeAsDefault | ✔️ |
使用範例存取令牌的負載建立 JSON | 取得ClientExampleAccessToken | ✔️ |
傳回所有協定映射器的列表,在產生為特定客戶端發行的令牌時將使用該列表。 | 取得客戶端協定映射器 | ✔️ |
取得特定角色容器的所有角色的有效範圍映射,該客戶端實際上被允許在為其頒發的 accessToken 中擁有該範圍映射。 | getClientAllowedRoleMappingsInContainer | ✔️ |
取得該客戶端沒有範圍的角色,並且不能將它們包含在為其頒發的 accessToken 中。 | getClientNotAllowedRoleMappingsInContainer | ✔️ |
產生客戶端適配器配置採用以下之一(keycloak-oidc-keycloak-json、keycloak-oidc-jboss-subsystem-cli、keycloak-oidc-jboss-subsystem、keycloak-saml、keycloak-saml-subsystem-cli、keycloak- saml -子系統) | 取得客戶端安裝配置 | ✔️ |
傳回對象,說明客戶端授權權限是否已初始化以及引用 | 取得客戶端授權權限狀態 | ✔️ |
更新客戶端授權權限初始化及參考 | 更新客戶端授權權限狀態 | ✔️ |
向客戶端註冊叢集節點 手動向該客戶端註冊叢集節點 - 通常不需要直接呼叫它,因為適配器應該透過向 Keycloak 發送註冊請求來處理 | 註冊客戶端叢集節點 | ✔️ |
從客戶端取消註冊叢集節點 | 註銷客戶端叢集節點 | ✔️ |
取得應用程式離線會話計數 傳回與此用戶端關聯的離線使用者會話數 { "count": number } | 取得客戶端離線會話數 | ✔️ |
取得客戶端的離線會話 傳回與該客戶端關聯的離線使用者會話的列表 | 取得客戶端離線會話 | ✔️ |
取得可選的客戶端範圍。 | 取得客戶端可選範圍 | ✔️ |
指派客戶端可選範圍 | 指派客戶端可選範圍 | ✔️ |
刪除客戶端可選範圍分配 | 取消分配客戶端選用範圍 | ✔️ |
將用戶端的撤銷原則推送到其管理 URL 如果用戶端有管理 URL,則將撤銷原則推送到它。 | 推送客戶端撤銷策略 | ✔️ |
為客戶端產生新的註冊存取權令牌 | 產生客戶端註冊令牌 | ✔️ |
取得專用於服務帳戶的用戶 | 取得服務帳戶專用用戶 | ✔️ |
取得應用程式會話計數 傳回與此客戶端關聯的使用者會話數 { "count": number } | 取得客戶端會話數 | ✔️ |
測試註冊的叢集節點是否可用 透過向所有叢集節點發送「ping」請求來測試可用性。 | 測試客戶端節點可用性 | ✔️ |
取得客戶端的使用者會話 傳回與該客戶端關聯的使用者會話列表 | 獲取客戶端會話 | ✔️ |
成分
應用程式介面 | 函數名稱 | 支援 |
---|
建立新組件 | 建立組件 | ✔️ |
取得組件 | 取得組件 | ✔️ |
取得組件 | 取得組件 | ✔️ |
更新元件 | 更新元件 | ✔️ |
刪除組件 | 刪除組件 | ✔️ |
可用於為特定父元件配置的子元件類型清單。 | 取得組件子類型 | ✔️ |
團體
應用程式介面 | 函數名稱 | 支援 |
---|
建立或新增頂級領域組設定或建立子項。 | 建立群組 | ✔️ |
取得群組層次結構。 | 獲取組 | ✔️ |
返回組計數。 | 取得組數 | ✔️ |
獲取組 | 獲取組 | ✔️ |
取得組兒童(子組) | 取得子組 | ✔️ |
更新組,忽略子組。 | 更新群組 | ✔️ |
刪除群組 | 刪除群組 | ✔️ |
設定或建立子項。 | 建立子群組 | ✔️ |
傳回對象,說明客戶端授權權限是否已初始化以及引用 | 取得群組管理權限 | ✔️ |
傳回對象,說明客戶端授權權限是否已初始化以及引用 | 更新群組管理權限 | ✔️ |
取得使用者 傳回根據查詢參數過濾的使用者列表 | 取得群組成員 | ✔️ |
身分提供者
應用程式介面 | 函數名稱 | 支援 |
---|
從上傳的 JSON 檔案匯入身分提供者 | 導入身分提供者 | ✔️ |
建立新的身分提供者 | 創建身分提供者 | ✔️ |
取得身分提供者 | 取得身分提供者 | ✔️ |
取得身分提供者 | 取得身分提供者 | ✔️ |
更新身分提供者 | 更新身分提供者 | ✔️ |
刪除身分提供者 | 刪除身分提供者 | ✔️ |
匯出身分提供者的公共代理配置 | 匯出IdentityProviderBrokerConfig | ✔️ |
傳回對象,說明客戶端授權權限是否已初始化以及引用 | 取得身分提供者管理權限 | ✔️ |
傳回對象,說明客戶端授權權限是否已初始化以及引用 | 更新IdentityProvider管理權限 | ✔️ |
取得身分提供者的映射器類型(Keycloak 給予異常報告) | 取得IdentityProviderMapperTypes | ✔️ |
將映射器新增至身分提供者 | 建立身分提供者映射器 | ✔️ |
取得身分提供者的映射器 | 取得身分提供者映射器 | ✔️ |
透過身分提供者的 ID 取得映射器 | 取得身分提供者映射器 | ✔️ |
更新身分提供者的映射器(由於某種原因無法運作會出現空指標異常) | 更新IdentityProviderMapper | ✔️ |
刪除身分提供者的映射器 | 刪除IdentityProviderMapper | ✔️ |
取得身分提供者 | 透過 ID 取得身分提供者 | ✔️ |
鑰匙
應用程式介面 | 函數名稱 | 支援 |
---|
取得領域金鑰 | 取得領域金鑰 | ✔️ |
協定映射器
注意:Ids 以 clientScopeId 或 clientId 和 mapperId 發送,其他所有內容都與 keycloak 文件相同
應用程式介面 | 函數名稱 | 支援 |
---|
建立多個映射器 | 建立ClientScopeProtocolMappers | ✔️ |
建立一個映射器 | 建立ClientScopeProtocolMapper | ✔️ |
取得地圖繪製器 | 取得ClientScopeProtocolMappers | ✔️ |
透過id獲取映射器 | getClientScopeProtocolMapperById | ✔️ |
更新映射器 | 更新ClientScopeProtocolMapper | ✔️ |
刪除映射器 | 刪除ClientScopeProtocolMapper | ✔️ |
按名稱取得特定協定的映射器 | getClientScopeProtocolMappersByProtocolName | ✔️ |
建立多個映射器 | 建立客戶端協定映射器 | ✔️ |
建立一個映射器 | 建立客戶端協定映射器 | ✔️ |
取得地圖繪製器 | 取得客戶端協定映射器 | ✔️ |
透過id獲取映射器 | getClientProtocolMapperById | ✔️ |
更新映射器 | 更新客戶端協定映射器 | ✔️ |
刪除映射器 | 刪除客戶端協定映射器 | ✔️ |
按名稱取得特定協定的映射器 | getClientProtocolMappersByProtocolName | ✔️ |
領域管理員
應用程式介面 | 函數名稱 | 支援 |
---|
取得可存取領域 傳回可存取領域的清單。此列表根據允許呼叫者查看的領域進行過濾。 | 獲取領域 | ✔️ |
導入領域 從該領域的完整表示導入該領域。 | 導入領域 | ✔️ |
獲取領域的頂級表示它不會包括用戶和客戶端表示等嵌套資訊。 | 獲取領域 | ✔️ |
更新領域的頂級資訊 表示中的任何使用者、角色或客戶端資訊都將被忽略。 | 更新領域 | ✔️ |
刪除領域 | 刪除領域 | ✔️ |
取得管理事件 傳回所有管理事件,或根據此處列出的 URL 查詢參數過濾事件 | 取得管理事件 | ✔️ |
刪除所有管理事件 | 刪除管理事件 | ✔️ |
清除外部公鑰的快取(客戶端或身分提供者的公鑰) | 清除外部公用密鑰緩存 | ✔️ |
清除領域快取 | 清除領域快取 | ✔️ |
清除用戶快取 | 清除用戶快取 | ✔️ |
用於在此領域下匯入客戶端的基本路徑。 | 導入客戶端 | ✔️ |
取得客戶端會話統計資料 傳回 JSON 對應。 | 獲取客戶端會話統計信息 | ✔️ |
GET /{realm}/憑證註冊器 | 取得憑證註冊器 | ✔️ |
取得領域預設客戶端範圍。 | 取得預設客戶端範圍 | ✔️ |
PUT /{realm}/default-default-client-scopes/{clientScopeId} | setScopeAsDefaultClientScope | ✔️ |
刪除 /{realm}/default-default-client-scopes/{clientScopeId} | unsetScopeAsDefaultClientScope | ✔️ |
取得群組層次結構。 | 取得預設群組層次結構 | ✔️ |
PUT /{realm}/default-groups/{groupId} | 將群組設定為預設群組 | ✔️ |
刪除 /{realm}/default-groups/{groupId} | 取消設定組為預設組 | ✔️ |
取得領域可選的客戶端範圍。 | 取得可選客戶端範圍 | ✔️ |
PUT /{realm}/default-Optional-client-scopes/{clientScopeId} | setScopeAsOptionalClientScope | ✔️ |
刪除/ {領域} /預設可選客戶端範圍/ {clientScopeId} | unsetScopeAsOptionalClientScope | ✔️ |
取得事件 傳回所有事件,或根據此處列出的 URL 查詢參數過濾它們 | 獲取所有事件 | ✔️ |
刪除所有事件 | 刪除所有事件 | ✔️ |
取得事件提供者配置 傳回帶有事件提供者配置的 JSON 對象 | 取得事件配置 | ✔️ |
更新事件提供者 變更事件提供者和/或其配置 | 更新事件配置 | ✔️ |
透過路徑獲取用戶群組 | 取得按路徑分組 | ✔️ |
GET /{realm}/本地化 | 取得本地化語言環境 | ✔️ |
POST /{領域}/在地化/{語言環境} | 更新本地化文本 | ✔️ |
GET /{領域}/在地化/{語言環境} | 取得本地化文本 | ✔️ |
刪除/{領域}/本地化/{語言環境} | 刪除本地化文本 | ✔️ |
GET /{realm}/localization/{locale}/{key} | 取得本地化文本 | ✔️ |
PUT /{realm}/localization/{locale}/{key} | 儲存本地化文本 | ✔️ |
刪除所有使用者會話。 (呼叫此方法時Keycloak會拋出異常) | 註銷所有用戶 | |
將現有領域部分匯出到 JSON 檔案。 | 部分匯出領域 | ✔️ |
從 JSON 檔案部分匯入到現有領域。 | 部分導入領域 | ✔️ |
將領域的撤銷原則推送到具有與其關聯的管理 URL 的任何用戶端。 (呼叫此方法時Keycloak會拋出異常) | 推送撤銷策略 | |
刪除特定的使用者會話。 | 撤銷使用者會話 | ✔️ |
測試 LDAP 連接 | 測試LDAP連接 | ✔️ |
測試與目前登入使用者的 SMTP 連接 | 測試SMTP連線 | ✔️ |
取得使用者管理權限 | 取得使用者管理權限 | ✔️ |
更新使用者管理權限 | 更新使用者管理權限 | ✔️ |
角色映射器
應用程式介面 | 函數名稱 | 支援 |
---|
取得角色映射 | 取得群組角色映射 | ✔️ |
將領域級角色映射新增至群組 | 新增全域角色到群組 | ✔️ |
取得領域級角色映射 | 獲取組領域角色映射 | ✔️ |
刪除領域級角色映射 | 刪除GroupRealmRoleMappings | ✔️ |
取得可映射的領域等級角色 | 取得可用群組領域角色映射 | ✔️ |
取得有效的領域級角色映射這將遞歸所有複合角色以獲得結果。 | getEffectiveGroupRealmRoleMappings | ✔️ |
取得角色映射 | 取得使用者角色映射 | ✔️ |
為使用者新增領域級角色映射 | 新增全域角色到用戶 | ✔️ |
取得領域級角色映射 | 取得使用者領域角色映射 | ✔️ |
刪除領域級角色映射 | 刪除使用者領域角色映射 | ✔️ |
取得可映射的領域等級角色 | 取得可用使用者領域角色映射 | ✔️ |
取得有效的領域級角色映射這將遞歸所有複合角色以獲得結果。 | 獲取有效用戶領域角色映射 | ✔️ |
角色
應用程式介面 | 函數名稱 | 支援 |
---|
為領域或客戶端建立新角色(特定於客戶端) | 創建客戶端角色 | ✔️ |
獲取領域或客戶端的所有角色(特定於客戶端) | 獲取客戶端角色 | ✔️ |
按名稱取得角色(特定於客戶) | 獲取客戶端角色 | ✔️ |
按名稱更新角色(特定於客戶端) | 更新客戶端角色 | ✔️ |
按名稱刪除角色(特定於客戶端) | 刪除客戶端角色 | ✔️ |
將組合新增至角色(特定於客戶端) | 新增複合角色到客戶端角色 | ✔️ |
獲取角色的組合(特定於客戶) | 取得客戶端角色複合角色 | ✔️ |
從角色組合中刪除角色(特定於客戶端) | 從客戶端角色刪除複合角色 | ✔️ |
角色組合的指定應用程式的應用程式層級角色(客戶端特定) | getClientRoleCompositeRolesForClient | ✔️ |
取得角色組合的領域級角色(特定於客戶端) | getClientRoleCompositeRolesForRealm | ✔️ |
傳回具有指定角色名稱的群組清單(特定於客戶端) | 取得客戶端角色組 | ✔️ |
傳回對象,說明角色授權權限是否已初始化以及引用(特定於客戶端) | 取得客戶端角色管理權限 | ✔️ |
更新對象,說明角色授權權限是否已初始化以及引用(特定於客戶端) | 更新客戶端角色管理權限 | ✔️ |
傳回具有指定角色名稱的使用者清單(特定於客戶端) | 取得客戶端角色用戶 | ✔️ |
為領域或客戶端建立新角色 | 創建領域角色 | ✔️ |
獲取領域或客戶端的所有角色 | 獲取領域角色 | ✔️ |
按名稱取得角色 | 獲取領域角色 | ✔️ |
按名稱更新角色 | 更新領域角色 | ✔️ |
按名稱刪除角色 | 刪除領域角色 | ✔️ |
為角色添加複合 | 新增複合角色到領域角色 | ✔️ |
獲取角色的組合 | getRealmRoleCompositeRoles | ✔️ |
從角色組合中刪除角色 | 從領域角色中刪除複合角色 | ✔️ |
角色組合的指定應用程式的應用程式層級角色 | getRealmRoleCompositeRolesForClient | ✔️ |
取得角色組合的領域級角色 | getRealmRoleCompositeRolesForRealm | ✔️ |
傳回具有指定角色名稱的群組列表 | 取得領域角色組 | ✔️ |
傳回對象,說明角色授權權限是否已初始化以及引用 | 取得領域角色管理權限 | ✔️ |
更新對象,說明角色授權權限是否已初始化以及引用 | 更新領域角色管理權限 | ✔️ |
傳回具有指定角色名稱的使用者列表 | 取得領域角色用戶 | ✔️ |
角色(按 ID)
應用程式介面 | 函數名稱 | 支援 |
---|
獲取特定角色的代表 | 取得 RealmRoleById | ✔️ |
更新角色 | 透過Id更新RealmRole | ✔️ |
刪除角色 | 透過Id刪除RealmRole | ✔️ |
透過關聯一些子角色使角色成為複合角色 | 新增CompositeRoleToRealmRoleByRoleId | ✔️ |
取得角色的子層級 如果角色是複合角色,則傳回一組角色的子層級。 | getRealmRoleCompositeRolesByRoleId | ✔️ |
從角色組合中刪除一組角色 | 從RealmRoleByRoleId刪除CompositeRole | ✔️ |
取得角色組合中客戶端的客戶端級角色 | getRealmRoleCompositeRolesForClientByRoleId | ✔️ |
取得角色組合中的領域級角色 | getRealmRoleCompositeRolesForRealmByRoleId | ✔️ |
傳回對象,說明角色授權權限是否已初始化以及引用 | getRealmRoleManagementPermissionsByRoleId | ✔️ |
傳回對象,說明角色授權權限是否已初始化以及引用 | updateRealmRoleManagementPermissionsByRoleId | ✔️ |
範圍映射
應用程式介面 | 函數名稱 | 支援 |
---|
取得客戶端的所有範圍映射 | | |
將客戶端等級角色新增至客戶端範圍 | | |
取得與客戶端範圍關聯的角色 傳回客戶端的角色。 | | |
從客戶端範圍中刪除客戶端等級角色。 | | |
可用的客戶端等級角色 傳回可與客戶端範圍關聯的客戶端角色 | | |
取得有效的客戶端角色 傳回與客戶端範圍關聯的客戶端角色。 | | |
將一組領域級角色新增至客戶端範圍 | | |
取得與客戶端範圍關聯的領域級角色 | | |
從客戶端範圍中刪除一組領域級角色 | | |
取得可附加到此客戶端範圍的領域級角色 | | |
取得與客戶端範圍關聯的有效領域級角色 其作用是遞歸與客戶端範圍關聯的任何複合角色,並將這些角色新增至此清單。 | | |
取得客戶端的所有範圍映射 | | |
將客戶端等級角色新增至客戶端範圍 | | |
取得與客戶端範圍關聯的角色 傳回客戶端的角色。 | | |
從客戶端範圍中刪除客戶端等級角色。 | | |
可用的客戶端等級角色 傳回可與客戶端範圍關聯的客戶端角色 | | |
取得有效的客戶端角色 傳回與客戶端範圍關聯的客戶端角色。 | | |
將一組領域級角色新增至客戶端範圍 | | |
取得與客戶端範圍關聯的領域級角色 | | |
從客戶端範圍中刪除一組領域級角色 | | |
取得可附加到此客戶端範圍的領域級角色 | | |
取得與客戶端範圍關聯的有效領域級角色 其作用是遞歸與客戶端範圍關聯的任何複合角色,並將這些角色新增至此清單。 | | |
用戶儲存提供者
應用程式介面 | 函數名稱 | 支援 |
---|
管理控制台需要這個才能在顯示客戶詳細資料時顯示提供者的簡單名稱 KEYCLOAK-4328 | | |
管理控制台需要這個才能在顯示使用者詳細資料時顯示提供者的簡單名稱 KEYCLOAK-4328 | | |
刪除導入的用戶 | | |
觸發使用者同步操作可以是“triggerFullSync”或“triggerChangedUsersSync” | | |
取消導入用戶與儲存提供者的連結 | | |
與 ldap 映射器(角色、群組等)方向相關的映射器資料的觸發同步是“fedToKeycloak”或“keycloakToFed” | | |
使用者
應用程式介面 | 函數名稱 | 支援 |
---|
建立新使用者 使用者名稱必須是唯一的。 | 創建用戶 | ✔️ |
取得使用者 傳回根據查詢參數過濾的使用者列表 | 取得用戶 | ✔️ |
GET /{領域}/使用者/計數 | 取得用戶數 | ✔️ |
獲取用戶的代表 | 取得用戶 | ️️️✔️ |
更新用戶 | 更新用戶 | ️️️✔️ |
刪除用戶 | 刪除用戶 | ️️️✔️ |
獲得用戶的同意 | | ️✔️ |
撤銷使用者對特定客戶端的同意和離線令牌 | | |
停用特定類型使用者的所有憑證 | | |
向用戶發送更新帳戶電子郵件 電子郵件中包含一個鏈接,用戶可以單擊該鏈接來執行一組所需的操作。 | 執行操作電子郵件 | ✔️ |
取得與使用者關聯的社群登入訊息 | | ✔️ |
新增社群登入提供者 | | ✔️ |
從用戶中刪除社交登入提供者 | | ✔️ |
GET /{領域}/使用者/{id}/群組 | 取得用戶群組 | ✔️ |
GET /{realm}/users/{id}/groups/count | 取得用戶群組計數 | ✔️ |
PUT /{realm}/users/{id}/groups/{groupId} | 新增用戶到群組 | ✔️ |
刪除 /{realm}/users/{id}/groups/{groupId} | 從群組中刪除用戶 | ✔️ |
冒充用戶 | 冒充用戶 | ✔️ |
刪除與該使用者關聯的所有使用者會話 也會向具有管理 URL 的所有用戶端發送通知,以使特定使用者的會話失效。 | 註銷用戶 | ✔️ |
取得與使用者和用戶端關聯的離線會話 | | |
從使用者中刪除 TOTP | | |
為用戶設定新密碼。 | 重置用戶密碼 | ✔️ |
向使用者發送電子郵件驗證電子郵件 電子郵件中包含一個鏈接,使用者可以點擊該鏈接來驗證其電子郵件地址。 | 發送驗證郵件 | ✔️ |
取得與使用者關聯的會話 | 取得使用者會話 | ✔️ |
取得與使用者關聯的憑證 | 取得使用者憑證 | ✔️ |
刪除與使用者關聯的憑證 | 刪除使用者憑證 | ✔️ |
根
應用程式介面 | 函數名稱 | 支援 |
---|
取得此伺服器上可用的主題、社交提供者、身份驗證提供者和事件偵聽器 | | |
CORS 預檢 | | |