- 導入
- 使用方法
- カスタマイズ
- サポートされている API
- 攻撃の検出
- 認証管理
- クライアント属性証明書
- クライアントの初期アクセス
- クライアント登録ポリシー
- クライアントの役割のマッピング
- クライアントスコープ
- クライアント
- 成分
- グループ
- アイデンティティプロバイダー
- 鍵
- プロトコル マッパー
- レルム管理者
- ロールマッパー
- 役割
- 役割 (ID 別)
- スコープマッピング
- ユーザーストレージプロバイダー
- ユーザー
- 根
導入
これは、問題なく keycloak 管理者 REST API に接続するための PHP クライアントです。
特徴:
- 使いやすい
- トークンを取得したり生成したりする必要はありません。トークンはすでにクライアントによって処理されています。
- ベース 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
キーワードを使用して、Guzzle クライアント ミドルウェアを keycloak クライアント構成に挿入することができます。
例えば:
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
攻撃の検出
API | 関数名 | サポートされています |
---|
すべてのユーザーのログイン失敗をクリアします。これにより、一時的に無効になったユーザーが解放されます。 | すべてクリアログイン失敗 | ✔️ |
ブルート フォース検出でユーザー名のステータスを取得する | getBruteForceUserStatus | ✔️ |
ユーザーのログイン失敗をすべてクリアします。これにより、一時的に無効になったユーザーが解放されます。 | ユーザーのログイン失敗のクリア | ✔️ |
認証管理
API | 関数名 | サポートされています |
---|
認証プロバイダーの取得 認証プロバイダーのリストを返します。 | getAuthenticatorProviders | ✔️ |
クライアント認証プロバイダーの取得 クライアント認証プロバイダーのリストを返します。 | getClientAuthenticatorProviders | ✔️ |
認証プロバイダーの構成の説明を取得する | getAuthenticatorConfigInfo | ✔️ |
認証システムの構成を取得する | getAuthenticatorConfig | ✔️ |
認証システムの構成を更新する | updateAuthenticatorConfig | ✔️ |
オーセンティケータ構成の削除 | deleteAuthenticatorConfig | ✔️ |
新しい認証実行を追加 | create認証実行 | ✔️ |
単一実行の取得 | get認証実行 | ✔️ |
削除実行 | 削除認証実行 | ✔️ |
新しい構成で実行を更新します | update認証実行 | ✔️ |
実行の優先度を下げる | lower認証実行優先度 | ✔️ |
実行の優先度を上げる | raiseAuthenticationExecutionPriority | ✔️ |
新しい認証フローを作成する | 認証フローの作成 | ✔️ |
認証フローの取得 認証フローのリストを返します。 | get認証フロー | ✔️ |
既存の認証フローを新しい名前でコピーします。新しい名前は、渡された JSON オブジェクトの「newName」属性として指定されます。 | コピー認証フロー | ✔️ |
フローの認証実行を取得する | getAuthenticationFlowExecutions | ✔️ |
フローの認証実行を更新する | updateAuthenticationFlowExecutions | ✔️ |
新しい認証実行をフローに追加する | createAuthenticationFlowExecution | ✔️ |
新しい実行を持つ新しいフローを既存のフローに追加する | add認証フロー実行 | ✔️ |
ID の認証フローを取得する | get認証フロー | ✔️ |
ID の認証フローを更新する | update認証フロー | ✔️ |
認証フローを削除する | 削除認証フロー | ✔️ |
フォーム アクション プロバイダーの取得 フォーム アクション プロバイダーのリストを返します。 | getFormActionProviders | ✔️ |
フォームプロバイダーの取得 フォームプロバイダーのリストを返します。 | getフォームプロバイダー | ✔️ |
すべてのクライアントの構成の説明を取得する | getClientsConfigDescriptions | ✔️ |
新たに必要なアクションを登録する | 必須アクションの作成 | ✔️ |
必要なアクションの取得 必要なアクションのリストを返します。 | getRequiredActions | ✔️ |
エイリアスに必要なアクションを取得する | getAlias必須アクション | ✔️ |
必要なアクションを更新する | 更新必須アクション | ✔️ |
必要なアクションを削除する | 削除必須アクション | ✔️ |
必要なアクションの優先度を下げる | 下位必須アクション優先度 | ✔️ |
必要なアクションの優先度を上げる | 上げる必須アクション優先度 | ✔️ |
未登録の必須アクションの取得 未登録の必須アクションのリストを返します。 | getUnregistered必須アクション | ✔️ |
クライアント属性証明書
API | 関数名 | サポートされています |
---|
キー情報を取得します (attr = "jwt.credential" で試してください) | getClientKeyInfo | ✔️ |
秘密鍵と公開証明書を含むクライアントのキーストア ファイルを取得します (注: 応答コンテンツをファイルに書き込みます)。 | getClientKeyStore | ✔️ |
新しいキーペアを使用して新しい証明書を生成します | クライアント証明書の生成 | ✔️ |
新しいキーペアと証明書を生成し、秘密キー ファイルを取得します。 キーペアと証明書を生成し、指定されたキーストア形式で秘密キーを提供します。 | ダウンロードクライアント証明書を生成する | ✔️ |
証明書をアップロードし、最終的には秘密キーをアップロードします | クライアント証明書と秘密鍵をアップロードする | ✔️ |
秘密キーではなく証明書のみをアップロードします | アップロードクライアント証明書のみ | ✔️ |
クライアントの初期アクセス
API | 関数名 | サポートされています |
---|
新しい初期アクセス トークンを作成します。 | createClientInitialAccessToken | ✔️ |
GET /{realm}/clients-initial-access | getClientInitialAccessTokens | ✔️ |
DELETE /{realm}/clients-initial-access/{id} | deleteClientInitialAccessToken | ✔️ |
クライアント登録ポリシー
API | 関数名 | サポートされています |
---|
configProperties が適切に入力されたプロバイダーを取得するためのベース パス | getClientRegistrationPolicyProviders | ✔️ |
クライアントの役割のマッピング
API | 関数名 | サポートされています |
---|
クライアントレベルの役割をグループ役割マッピングに追加する | addGroupClientRoleMappings | ✔️ |
グループとアプリのクライアントレベルの役割マッピングを取得します | getGroupClientRoleMappings | ✔️ |
グループ役割マッピングからクライアントレベルの役割を削除する | deleteGroupClientRoleMappings | ✔️ |
グループにマッピングできる利用可能なクライアントレベルのロールを取得します。 | getAvailableGroupClientRoleMappings | ✔️ |
効果的なクライアントレベルの役割マッピングを取得します。これにより、グループの複合役割が再帰的に実行されます。 | getGroupClientRoleMappingsWithComposite | ✔️ |
クライアントレベルの役割をユーザー役割マッピングに追加する | addUserClientRoleMappings | ✔️ |
ユーザーとアプリのクライアントレベルのロールマッピングを取得します | getUserClientRoleMappings | ✔️ |
ユーザー役割マッピングからクライアントレベルの役割を削除する | deleteUserClientRoleMappings | ✔️ |
ユーザーにマッピングできる利用可能なクライアントレベルのロールを取得します。 | getAvailableUserClientRoleMappings | ✔️ |
効果的なクライアントレベルの役割マッピングを取得します。これにより、ユーザーの複合役割が再帰的に実行されます。 | getUserClientRoleMappingsWithComposite | ✔️ |
クライアントスコープ
API | 関数名 | サポートされています |
---|
新しいクライアント スコープを作成する クライアント スコープの名前は一意である必要があります。 | クライアントスコープの作成 | ✔️ |
レルムに属するクライアント スコープの取得 レルムに属するクライアント スコープのリストを返します。 | getClientScopes | ✔️ |
クライアントスコープの表現を取得します | getClientScope | ✔️ |
クライアントスコープを更新する | クライアントスコープの更新 | ✔️ |
クライアントスコープを削除する | クライアントスコープの削除 | ✔️ |
クライアント
API | 関数名 | サポートされています |
---|
新しいクライアントを作成します。クライアントの client_id は一意である必要があります。 | クライアントの作成 | ✔️ |
レルムに属するクライアントを取得します。 レルムに属するクライアントのリストを返します。 | getClients | ✔️ |
クライアントの代理人を取得する | getクライアント | ✔️ |
クライアントを更新する | クライアントの更新 | ✔️ |
クライアントを削除する | クライアントの削除 | ✔️ |
クライアントの新しいシークレットを生成します | クライアントシークレットを生成する | ✔️ |
クライアントシークレットを取得する | getClientSecret | ✔️ |
デフォルトのクライアント スコープを取得します。 | getClientDefaultScopes | ✔️ |
クライアント スコープをデフォルトのスコープとして設定する | setClientScopeAsDefault | ✔️ |
デフォルトのスコープからクライアント スコープを削除する | デフォルトとしてClientScopeを削除 | ✔️ |
サンプルのアクセス トークンのペイロードを含む JSON を作成する | getClientExampleAccessToken | ✔️ |
特定のクライアントに対して発行されるトークンを生成するときに使用されるすべてのプロトコル マッパーのリストを返します。 | getClientProtocolMappers | ✔️ |
特定のロール コンテナのすべてのロールの有効なスコープ マッピングを取得します。これは、このクライアントに対して発行された 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) -サブシステム) | getClientインストール構成 | ✔️ |
クライアントの認可権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | getClientAuthorizationPermissionsStatus | ✔️ |
クライアントの認可権限の初期化と参照を更新します。 | updateClientAuthorizationPermissionsStatus | ✔️ |
クラスターノードをクライアントに登録します。このクライアントにクラスターノードを手動で登録します。アダプターがKeycloakに登録リクエストを送信することで処理するため、通常はこれを直接呼び出す必要はありません。 | registerClientClusterNode | ✔️ |
クライアントからクラスターノードの登録を解除する | クライアントクラスターノードの登録を解除する | ✔️ |
アプリケーションのオフライン セッション数を取得する このクライアントに関連付けられたオフライン ユーザー セッションの数を返します { "count":number } | getClientOfflineSessionsCount | ✔️ |
クライアントのオフライン セッションを取得する このクライアントに関連付けられたオフライン ユーザー セッションのリストを返します | getClientOfflineSessions | ✔️ |
オプションのクライアント スコープを取得します。 | getClientOptionalScopes | ✔️ |
クライアントにオプションのスコープを割り当てる | assignClientOptionalScope | ✔️ |
クライアントのオプションのスコープ割り当てを削除する | unassignClientOptionalScope | ✔️ |
クライアントの失効ポリシーを管理 URL にプッシュする クライアントに管理 URL がある場合は、失効ポリシーをその管理 URL にプッシュします。 | PushClientRevocationPolicy | ✔️ |
クライアントの新しい登録アクセス トークンを生成します。 | GenerateClientRegistrationToken | ✔️ |
サービスアカウント専用のユーザーを取得する | getServiceAccountD dedicatedUser | ✔️ |
アプリケーション セッション数の取得 このクライアントに関連付けられたユーザー セッションの数を返します { "count":number } | getClientSessionsCount | ✔️ |
登録されたクラスター ノードが利用可能かどうかをテストする すべてのクラスター ノードに「ping」リクエストを送信して、可用性をテストします。 | テストクライアントノード可用性 | ✔️ |
クライアントのユーザー セッションを取得する このクライアントに関連付けられたユーザー セッションのリストを返します | getClientSessions | ✔️ |
成分
API | 関数名 | サポートされています |
---|
新しいコンポーネントを作成する | コンポーネントの作成 | ✔️ |
コンポーネントの取得 | getコンポーネント | ✔️ |
コンポーネントの取得 | getコンポーネント | ✔️ |
コンポーネントを更新する | コンポーネントの更新 | ✔️ |
コンポーネントの削除 | コンポーネントの削除 | ✔️ |
特定の親コンポーネントの構成に使用できるサブコンポーネント タイプのリスト。 | getComponentSubTypes | ✔️ |
グループ
API | 関数名 | サポートされています |
---|
最上位レルム グループを作成または追加する子を設定または作成します。 | グループの作成 | ✔️ |
グループ階層を取得します。 | グループの取得 | ✔️ |
グループ数を返します。 | getGroupsCount | ✔️ |
グループの取得 | グループの取得 | ✔️ |
グループの子 (サブグループ) を取得する | getGroupChildren | ✔️ |
グループを更新し、サブグループを無視します。 | 更新グループ | ✔️ |
グループの削除 | グループを削除する | ✔️ |
子を設定または作成します。 | 子グループの作成 | ✔️ |
クライアントの認可権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | getGroupManagementPermissions | ✔️ |
クライアントの認可権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | updateグループ管理権限 | ✔️ |
ユーザーの取得 クエリパラメータに従ってフィルタリングされたユーザーのリストを返します。 | グループメンバーの取得 | ✔️ |
アイデンティティプロバイダー
API | 関数名 | サポートされています |
---|
アップロードされた JSON ファイルから ID プロバイダーをインポートする | importIdentityProvider | ✔️ |
新しい ID プロバイダーを作成する | createIdentityProvider | ✔️ |
ID プロバイダーを取得する | getIdentityProviders | ✔️ |
ID プロバイダーを取得する | getIdentityProvider | ✔️ |
ID プロバイダーを更新する | アイデンティティプロバイダーの更新 | ✔️ |
ID プロバイダーを削除する | IDプロバイダーの削除 | ✔️ |
ID プロバイダーのパブリック ブローカー構成をエクスポートする | importIdentityProviderBrokerConfig | ✔️ |
クライアントの認可権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | getIdentityProviderManagementPermissions | ✔️ |
クライアントの認可権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | updateIdentityProviderManagementPermissions | ✔️ |
アイデンティティプロバイダーのマッパータイプを取得します(Keycloakは例外レポートを提供します) | getIdentityProviderMapperTypes | ✔️ |
ID プロバイダーにマッパーを追加する | createIdentityProviderMapper | ✔️ |
ID プロバイダーのマッパーを取得する | getIdentityProviderMappers | ✔️ |
ID プロバイダーの ID によるマッパーの取得 | getIdentityProviderMapper | ✔️ |
ID プロバイダーのマッパーを更新します (何らかの理由で機能せず、Null Pointer Exception が発生します) | updateIdentityProviderMapper | ✔️ |
ID プロバイダーのマッパーを削除する | アイデンティティプロバイダーマッパーの削除 | ✔️ |
ID プロバイダーを取得する | getIdentityProviderById | ✔️ |
鍵
API | 関数名 | サポートされています |
---|
レルムキーを取得する | getRealmKeys | ✔️ |
プロトコル マッパー
注: ID は clientScopeId または clientId と MapperId として送信されます。それ以外はすべて keycloak のドキュメントと同じです。
API | 関数名 | サポートされています |
---|
複数のマッパーを作成する | createClientScopeProtocolMappers | ✔️ |
マッパーを作成する | createClientScopeProtocolMapper | ✔️ |
マッパーを取得する | getClientScopeProtocolMappers | ✔️ |
IDでマッパーを取得 | getClientScopeProtocolMapperById | ✔️ |
マッパーを更新する | updateClientScopeProtocolMapper | ✔️ |
マッパーを削除する | deleteClientScopeProtocolMapper | ✔️ |
特定のプロトコルのマッパーを名前で取得します | getClientScopeProtocolMappersByProtocolName | ✔️ |
複数のマッパーを作成する | createClientProtocolMappers | ✔️ |
マッパーを作成する | createClientProtocolMapper | ✔️ |
マッパーを取得する | getClientProtocolMappers | ✔️ |
IDでマッパーを取得 | getClientProtocolMapperById | ✔️ |
マッパーを更新する | updateClientProtocolMapper | ✔️ |
マッパーを削除する | deleteClientProtocolMapper | ✔️ |
特定のプロトコルのマッパーを名前で取得します | getClientProtocolMappersByProtocolName | ✔️ |
レルム管理者
API | 関数名 | サポートされています |
---|
アクセス可能なレルムの取得 アクセス可能なレルムのリストを返します。リストは、呼び出し元が表示を許可されているレルムに基づいてフィルタリングされます。 | getRealms | ✔️ |
レルムのインポート レルムの完全な表現からレルムをインポートします。 | インポートレルム | ✔️ |
レルムのトップレベル表現を取得します。これには、ユーザー表現やクライアント表現などのネストされた情報は含まれません。 | getRealm | ✔️ |
レルムのトップレベル情報を更新します。表現内のユーザー、ロール、またはクライアント情報は無視されます。 | updateRealm | ✔️ |
レルムを削除する | レルムの削除 | ✔️ |
管理イベントの取得 すべての管理イベントを返すか、ここにリストされている URL クエリ パラメーターに基づいてイベントをフィルタリングします。 | getAdminEvents | ✔️ |
すべての管理イベントを削除します | 管理イベントの削除 | ✔️ |
外部公開キー (クライアントまたは ID プロバイダーの公開キー) のキャッシュをクリアします。 | 外部公開キーキャッシュのクリア | ✔️ |
レルムキャッシュをクリアする | クリアレルムキャッシュ | ✔️ |
ユーザーキャッシュをクリアする | ユーザーキャッシュのクリア | ✔️ |
このレルムの下にクライアントをインポートするためのベース パス。 | インポートクライアント | ✔️ |
クライアントセッション統計の取得 JSON マップを返します。 | getClientsSessionStats | ✔️ |
GET /{realm}/credential-registrators | getCredentialRegistrator | ✔️ |
レルムのデフォルトのクライアント スコープを取得します。 | getDefaultClientScopes | ✔️ |
PUT /{realm}/default-default-client-scopes/{clientScopeId} | setScopeAsDefaultClientScope | ✔️ |
DELETE /{realm}/default-default-client-scopes/{clientScopeId} | unsetScopeAsDefaultClientScope | ✔️ |
グループ階層を取得します。 | getDefaultGroupHierarchy | ✔️ |
PUT /{realm}/default-groups/{groupId} | setGroupAsDefaultGroup | ✔️ |
DELETE /{realm}/default-groups/{groupId} | unsetGroupAsDefaultGroup | ✔️ |
レルムのオプションのクライアント スコープを取得します。 | getOptionalClientScopes | ✔️ |
PUT /{realm}/default-optional-client-scopes/{clientScopeId} | setScopeAsOptionalClientScope | ✔️ |
DELETE /{realm}/default-optional-client-scopes/{clientScopeId} | unsetScopeAsOptionalClientScope | ✔️ |
イベントの取得 すべてのイベントを返すか、ここにリストされている URL クエリ パラメーターに基づいてイベントをフィルタリングします。 | すべてのイベントの取得 | ✔️ |
すべてのイベントを削除する | すべてのイベントを削除 | ✔️ |
イベント プロバイダー構成を取得する イベント プロバイダー構成を含む JSON オブジェクトを返します | getEventsConfig | ✔️ |
イベントプロバイダーを更新する イベントプロバイダーおよび/またはその構成を変更する | updateEventsConfig | ✔️ |
パスによるユーザーグループの取得 | getGroupByPath | ✔️ |
GET /{realm}/localization | getLocalizationロケール | ✔️ |
POST /{realm}/localization/{locale} | ローカリゼーションテキストの更新 | ✔️ |
GET /{レルム}/localization/{ロケール} | getLocalizationTexts | ✔️ |
DELETE /{レルム}/localization/{ロケール} | ローカリゼーションテキストの削除 | ✔️ |
GET /{レルム}/localization/{ロケール}/{キー} | getLocalizationText | ✔️ |
PUT /{realm}/localization/{locale}/{key} | ローカリゼーションテキストを保存 | ✔️ |
すべてのユーザーセッションを削除します。 (Keycloakは、これが呼び出されるときに例外をスローします) | ログアウトすべてのユーザー | |
既存のレルムを JSON ファイルに部分的にエクスポートします。 | 部分エクスポートレルム | ✔️ |
JSON ファイルから既存のレルムへの部分インポート。 | 部分インポートレルム | ✔️ |
レルムの失効ポリシーを、管理者 URL が関連付けられているクライアントにプッシュします。 (Keycloakは、これが呼び出されるときに例外をスローします) | プッシュ失効ポリシー | |
特定のユーザーセッションを削除します。 | ユーザーセッションを取り消す | ✔️ |
LDAP接続をテストする | テストLDAP接続 | ✔️ |
現在ログインしているユーザーで SMTP 接続をテストする | テストSMTP接続 | ✔️ |
ユーザー管理権限を取得する | getUserManagementPermissions | ✔️ |
ユーザー管理権限を更新する | updateUserManagement権限 | ✔️ |
ロールマッパー
API | 関数名 | サポートされています |
---|
ロールマッピングを取得する | getGroupRoleMappings | ✔️ |
レルムレベルのロールマッピングをグループに追加する | グローバルロールをグループに追加 | ✔️ |
レルムレベルのロールマッピングを取得する | getGroupRealmRoleMappings | ✔️ |
レルムレベルのロールマッピングの削除 | deleteGroupRealmRoleMappings | ✔️ |
マッピング可能なレルムレベルのロールを取得する | getAvailableGroupRealmRoleMappings | ✔️ |
効果的なレルムレベルのロールマッピングを取得します。これにより、すべての複合ロールが再帰的に結果を取得します。 | getEffectiveGroupRealmRoleMappings | ✔️ |
ロールマッピングを取得する | getUserRoleMappings | ✔️ |
レルムレベルのロールマッピングをユーザーに追加する | ユーザーにグローバルロールを追加 | ✔️ |
レルムレベルのロールマッピングを取得する | getUserRealmRoleMappings | ✔️ |
レルムレベルのロールマッピングの削除 | deleteUserRealmRoleMappings | ✔️ |
マッピング可能なレルムレベルのロールを取得する | getAvailableUserRealmRoleMappings | ✔️ |
効果的なレルムレベルのロールマッピングを取得します。これにより、すべての複合ロールが再帰的に結果を取得します。 | getEffectiveUserRealmRoleMappings | ✔️ |
役割
API | 関数名 | サポートされています |
---|
レルムまたはクライアントの新しいロールを作成します (クライアント固有) | createClientRole | ✔️ |
レルムまたはクライアントのすべてのロールを取得します (クライアント固有) | getClientRoles | ✔️ |
名前による役割の取得 (クライアント固有) | getClientRole | ✔️ |
名前によるロールの更新 (クライアント固有) | updateClientRole | ✔️ |
名前によるロールの削除 (クライアント固有) | deleteClientRole | ✔️ |
ロールにコンポジットを追加します (クライアント固有) | CompositeRoleをClientRoleに追加 | ✔️ |
ロールのコンポジットを取得する (クライアント固有) | getClientRoleCompositeRoles | ✔️ |
ロールのコンポジットからロールを削除します (クライアント固有) | クライアントロールから複合ロールを削除 | ✔️ |
ロールのコンポジットの指定されたアプリのアプリレベルのロール (クライアント固有) | getClientRoleCompositeRolesForClient | ✔️ |
ロールのコンポジットのレルムレベルのロールを取得します (クライアント固有) | getClientRoleCompositeRolesForRealm | ✔️ |
指定されたロール名を持つグループのリストを返します (クライアント固有) | getClientRoleGroups | ✔️ |
ロールの認証権限が初期化されているかどうかを示すオブジェクトと参照 (クライアント固有) を返します。 | getClientRoleManagementPermissions | ✔️ |
ロールの認証権限が初期化されているかどうかを示すオブジェクトと参照 (クライアント固有) を更新します。 | updateClientRoleManagementPermissions | ✔️ |
指定されたロール名を持つユーザーのリストを返します (クライアント固有) | getClientRoleUsers | ✔️ |
レルムまたはクライアントの新しいロールを作成する | createRealmRole | ✔️ |
レルムまたはクライアントのすべてのロールを取得します | getRealmRoles | ✔️ |
名前で役割を取得する | getRealmRole | ✔️ |
役割を名前で更新する | updateRealmRole | ✔️ |
役割を名前で削除する | deleteRealmRole | ✔️ |
ロールにコンポジットを追加する | CompositeRoleToRealmRole を追加 | ✔️ |
ロールのコンポジットを取得する | getRealmRoleCompositeRoles | ✔️ |
ロールのコンポジットからロールを削除する | レルムロールから複合ロールを削除 | ✔️ |
ロールの複合に対する指定されたアプリのアプリレベルのロール | getRealmRoleCompositeRolesForClient | ✔️ |
ロールのコンポジットのレルムレベルのロールを取得する | getRealmRoleCompositeRolesForRealm | ✔️ |
指定されたロール名を持つグループのリストを返します。 | getRealmRoleGroups | ✔️ |
ロールの認証権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | getRealmRoleManagementPermissions | ✔️ |
ロールの認証権限が初期化されているかどうかを示すオブジェクトと参照を更新します。 | updateRealmRoleManagementPermissions | ✔️ |
指定されたロール名を持つユーザーのリストを返します。 | getRealmRoleUsers | ✔️ |
役割 (ID 別)
API | 関数名 | サポートされています |
---|
特定のロールの表現を取得する | getRealmRoleById | ✔️ |
役割を更新する | updateRealmRoleById | ✔️ |
役割を削除する | deleteRealmRoleById | ✔️ |
いくつかの子の役割を関連付けて、役割を複合役割にします。 | CompositeRoleToRealmRoleByRoleId を追加 | ✔️ |
ロールの子の取得 ロールが複合ロールである場合、ロールの子のセットを返します。 | getRealmRoleCompositeRolesByRoleId | ✔️ |
ロールのコンポジットからロールのセットを削除します | deleteCompositeRoleFromRealmRoleByRoleId | ✔️ |
ロールのコンポジットに含まれるクライアントのクライアントレベルのロールを取得します | getRealmRoleCompositeRolesForClientByRoleId | ✔️ |
ロールのコンポジットに含まれるレルムレベルのロールを取得する | getRealmRoleCompositeRolesForRealmByRoleId | ✔️ |
ロールの認証権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | getRealmRoleManagementPermissionsByRoleId | ✔️ |
ロールの認証権限が初期化されているかどうかを示すオブジェクトと参照を返します。 | updateRealmRoleManagementPermissionsByRoleId | ✔️ |
スコープマッピング
API | 関数名 | サポートされています |
---|
クライアントのすべてのスコープ マッピングを取得する | | |
クライアントレベルのロールをクライアントのスコープに追加する | | |
クライアントのスコープに関連付けられたロールを取得します。クライアントのロールを返します。 | | |
クライアントのスコープからクライアントレベルのロールを削除します。 | | |
利用可能なクライアントレベルのロール クライアントのスコープに関連付けることができるクライアントのロールを返します。 | | |
有効なクライアント ロールを取得する クライアントのスコープに関連付けられているクライアントのロールを返します。 | | |
レルムレベルのロールのセットをクライアントのスコープに追加する | | |
クライアントのスコープに関連付けられたレルムレベルのロールを取得します | | |
レルムレベルのロールのセットをクライアントのスコープから削除する | | |
このクライアントのスコープにアタッチできるレルムレベルのロールを取得します | | |
クライアントのスコープに関連付けられた有効なレルム レベルのロールを取得する これにより、クライアントのスコープに関連付けられた複合ロールが再帰され、このリストにロールが追加されます。 | | |
クライアントのすべてのスコープ マッピングを取得する | | |
クライアントレベルのロールをクライアントのスコープに追加する | | |
クライアントのスコープに関連付けられたロールを取得します。クライアントのロールを返します。 | | |
クライアントのスコープからクライアントレベルのロールを削除します。 | | |
利用可能なクライアントレベルのロール クライアントのスコープに関連付けることができるクライアントのロールを返します。 | | |
有効なクライアント ロールを取得する クライアントのスコープに関連付けられているクライアントのロールを返します。 | | |
レルムレベルのロールのセットをクライアントのスコープに追加する | | |
クライアントのスコープに関連付けられたレルムレベルのロールを取得します | | |
レルムレベルのロールのセットをクライアントのスコープから削除する | | |
このクライアントのスコープにアタッチできるレルムレベルのロールを取得します | | |
クライアントのスコープに関連付けられた有効なレルム レベルのロールを取得する これにより、クライアントのスコープに関連付けられた複合ロールが再帰され、このリストにロールが追加されます。 | | |
ユーザーストレージプロバイダー
API | 関数名 | サポートされています |
---|
管理コンソールでクライアントの詳細を表示するときにプロバイダーの単純な名前を表示するにはこれが必要です KEYCLOAK-4328 | | |
ユーザーの詳細を表示するときに管理コンソールにプロバイダーの単純な名前を表示するにはこれが必要です KEYCLOAK-4328 | | |
インポートされたユーザーを削除する | | |
ユーザーの同期をトリガーするアクションは「triggerFullSync」または「triggerChangedUsersSync」です。 | | |
インポートされたユーザーをストレージプロバイダーからリンク解除する | | |
LDAP マッパー (ロール、グループなど) に関連するマッパー データの同期のトリガーは、「fedToKeycloak」または「keycloakToFed」の方向です | | |
ユーザー
API | 関数名 | サポートされています |
---|
新しいユーザーを作成する ユーザー名は一意である必要があります。 | ユーザーの作成 | ✔️ |
ユーザーの取得 クエリパラメータに従ってフィルタリングされたユーザーのリストを返します。 | ユーザーの取得 | ✔️ |
GET /{realm}/users/count | getUserCount | ✔️ |
ユーザーの代表を取得する | ユーザーの取得 | ️️️✔️ |
ユーザーを更新する | ユーザーの更新 | ️️️✔️ |
ユーザーを削除する | ユーザーの削除 | ️️️✔️ |
ユーザーからの同意を得る | | ️✔️ |
特定のクライアントの同意とオフライン トークンをユーザーから取り消す | | |
特定のタイプのユーザーのすべての認証情報を無効にする | | |
アカウント更新メールをユーザーに送信する 電子メールには、ユーザーがクリックして一連の必要なアクションを実行できるリンクが含まれています。 | 実行アクションメール | ✔️ |
ユーザーに関連付けられたソーシャル ログインを取得する | | ✔️ |
ソーシャル ログイン プロバイダーをユーザーに追加する | | ✔️ |
ユーザーからソーシャル ログイン プロバイダーを削除する | | ✔️ |
GET /{realm}/users/{id}/groups | ユーザーグループの取得 | ✔️ |
GET /{realm}/users/{id}/groups/count | getUserGroupsCount | ✔️ |
PUT /{realm}/users/{id}/groups/{groupId} | ユーザーをグループに追加 | ✔️ |
DELETE /{realm}/users/{id}/groups/{groupId} | グループからユーザーを削除 | ✔️ |
ユーザーになりすます | ユーザーを偽装する | ✔️ |
ユーザーに関連付けられたすべてのユーザー セッションを削除します。また、管理 URL を持つすべてのクライアントに通知を送信し、特定のユーザーのセッションを無効にします。 | ログアウトユーザー | ✔️ |
ユーザーとクライアントに関連付けられたオフライン セッションを取得する | | |
ユーザーから TOTP を削除する | | |
ユーザーの新しいパスワードを設定します。 | ユーザーパスワードのリセット | ✔️ |
電子メール検証電子メールをユーザーに送信する 電子メールには、ユーザーがクリックして電子メール アドレスを検証できるリンクが含まれています。 | 送信確認メール | ✔️ |
ユーザーに関連付けられたセッションを取得する | getUserSessions | ✔️ |
ユーザーに関連付けられた認証情報を取得する | getUserCredentials | ✔️ |
ユーザーに関連付けられた資格情報を削除します | ユーザー資格情報の削除 | ✔️ |
根
API | 関数名 | サポートされています |
---|
このサーバーで利用可能なテーマ、ソーシャル プロバイダー、認証プロバイダー、およびイベント リスナーを取得します | | |
CORS プリフライト | | |