20.6. レルム操作


新しいレルムの作成

realms エンドポイントで create コマンドを使用して、新しい有効なレルムを作成し、属性を realm および enabled に設定します。

$ kcadm.sh create realms -s realm=demorealm -s enabled=true
Copy to Clipboard Toggle word wrap

レルムはデフォルトでは有効になっていません。これを有効にすると、認証にレルムをすぐに使用できます。

新規オブジェクトの説明には、JSON 形式を使用することもできます。

$ kcadm.sh create realms -f demorealm.json
Copy to Clipboard Toggle word wrap

レルム属性を使用して JSON ドキュメントをファイルから直接送信するか、または標準入力にパイプして送信できます。

たとえば、以下のようになります。

  • Linux:
$ kcadm.sh create realms -f - << EOF
{ "realm": "demorealm", "enabled": true }
EOF
Copy to Clipboard Toggle word wrap
  • Windows:
c:\> echo { "realm": "demorealm", "enabled": true } | kcadm create realms -f -
Copy to Clipboard Toggle word wrap

既存のレルムの一覧表示

以下のコマンドは、すべてのレルムのリストを返します。

$ kcadm.sh get realms
Copy to Clipboard Toggle word wrap
注記

レルムの一覧はサーバー上でさらにフィルタリングされ、ユーザーが確認できるレルムのみを返します。

レルムの説明全体を返すと、多くの場合、情報が非常に多すぎます。ほとんどのユーザーは、レルム名やレルムが有効かどうかなど、属性のサブセットのみに関心があります。--fields オプションを使用して、返す属性を指定できます。

$ kcadm.sh get realms --fields realm,enabled
Copy to Clipboard Toggle word wrap

結果をコンマ区切りの値として表示することもできます。

$ kcadm.sh get realms --fields realm --format csv --noquotes
Copy to Clipboard Toggle word wrap

特定のレルムの取得

レルム名をコレクション URI に追加し、個別のレルムを取得します。

$ kcadm.sh get realms/master
Copy to Clipboard Toggle word wrap

レルムの更新

  1. レルムの属性のみを変更する場合に、-s オプションを使用して属性に新しい値を設定します。

    以下に例を示します。

    $ kcadm.sh update realms/demorealm -s enabled=false
    Copy to Clipboard Toggle word wrap
  2. 新しい値で書き込み可能な属性をすべて設定する場合は、get コマンドを実行して、JSON ファイルの現在の値を編集し、resubmit を実行します。

    以下に例を示します。

    $ kcadm.sh get realms/demorealm > demorealm.json
    $ vi demorealm.json
    $ kcadm.sh update realms/demorealm -f demorealm.json
    Copy to Clipboard Toggle word wrap

レルムの削除

以下のコマンドを実行してレルムを削除します。

$ kcadm.sh delete realms/demorealm
Copy to Clipboard Toggle word wrap

レルムのすべてのログインページオプションをオンにする

特定の機能を制御する属性を true に設定します。

以下に例を示します。

$ kcadm.sh update realms/demorealm -s registrationAllowed=true -s registrationEmailAsUsername=true -s rememberMe=true -s verifyEmail=true -s resetPasswordAllowed=true -s editUsernameAllowed=true
Copy to Clipboard Toggle word wrap

レルムキーの一覧表示

ターゲットレルムの keys エンドポイントで get 操作を使用します。

$ kcadm.sh get keys -r demorealm
Copy to Clipboard Toggle word wrap

新しいレルムキーの生成

  1. 新しい RSA 生成鍵のペアを追加する前に、ターゲットレルムの ID を取得します。

    以下に例を示します。

    $ kcadm.sh get realms/demorealm --fields id --format csv --noquotes
    Copy to Clipboard Toggle word wrap
  2. kcadm.sh get keys -r demorealm によって明らかになったように、既存のプロバイダーよりも優先度の高い新規キープロバイダーを追加します。

    たとえば、以下のようになります。

    • Linux:

      $ kcadm.sh create components -r demorealm -s name=rsa-generated -s providerId=rsa-generated -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s 'config.priority=["101"]' -s 'config.enabled=["true"]' -s 'config.active=["true"]' -s 'config.keySize=["2048"]'
      Copy to Clipboard Toggle word wrap
    • Windows:

      c:\> kcadm create components -r demorealm -s name=rsa-generated -s providerId=rsa-generated -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s "config.priority=[\"101\"]" -s "config.enabled=[\"true\"]" -s "config.active=[\"true\"]" -s "config.keySize=[\"2048\"]"
      Copy to Clipboard Toggle word wrap
  3. parentId 属性をターゲットレルムの ID の値に設定します。

    新たに追加されたキーは、kcadm.sh get keys -r demorealm によって明らかになったように、アクティブキーになります。

Java キーストアファイルから新しいレルムキーの追加

  1. 新しいキープロバイダーを追加して、サーバーに JKS ファイルとしてすでに準備済みの新規キーペアを追加します。

    たとえば、以下のようになります。

    • Linux:

      $ kcadm.sh create components -r demorealm -s name=java-keystore -s providerId=java-keystore -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s 'config.priority=["101"]' -s 'config.enabled=["true"]' -s 'config.active=["true"]' -s 'config.keystore=["/opt/keycloak/keystore.jks"]' -s 'config.keystorePassword=["secret"]' -s 'config.keyPassword=["secret"]' -s 'config.alias=["localhost"]'
      Copy to Clipboard Toggle word wrap
    • Windows:

      c:\> kcadm create components -r demorealm -s name=java-keystore -s providerId=java-keystore -s providerType=org.keycloak.keys.KeyProvider -s parentId=959844c1-d149-41d7-8359-6aa527fca0b0 -s "config.priority=[\"101\"]" -s "config.enabled=[\"true\"]" -s "config.active=[\"true\"]" -s "config.keystore=[\"/opt/keycloak/keystore.jks\"]" -s "config.keystorePassword=[\"secret\"]" -s "config.keyPassword=[\"secret\"]" -s "config.alias=[\"localhost\"]"
      Copy to Clipboard Toggle word wrap
  2. 特定のキーストアに一致するように、keystorekeystorePasswordkeyPassword、および alias 属性値を変更するようにしてください。
  3. parentId 属性をターゲットレルムの ID の値に設定します。

鍵のパッシブの作成または鍵の無効化

  1. パッシブを作成する鍵を特定します。

    $ kcadm.sh get keys -r demorealm
    Copy to Clipboard Toggle word wrap
  2. キーの providerId 属性を使用して、components/PROVIDER_ID などのエンドポイント URI を作成します。
  3. update を実行します。

    たとえば、以下のようになります。

    • Linux:

      $ kcadm.sh update components/PROVIDER_ID -r demorealm -s 'config.active=["false"]'
      Copy to Clipboard Toggle word wrap
    • Windows:

      c:\> kcadm update components/PROVIDER_ID -r demorealm -s "config.active=[\"false\"]"
      Copy to Clipboard Toggle word wrap

      他のキー属性を更新できます。

  4. 新しい enabled 値を設定してキーを無効にします(例: config.enabled=["false"])。
  5. 新規の priority の値を設定し、キーの優先度を変更します (例: config.priority=["110"])。

古いキーの削除

  1. 削除する鍵がパッシブかつ無効になっており、既存のトークンがアプリケーションに保持され、ユーザーが突然失敗するのを防ぎます。
  2. パッシブを作成する鍵を特定します。

    $ kcadm.sh get keys -r demorealm
    Copy to Clipboard Toggle word wrap
  3. そのキーの providerId を使用して削除を実行します。

    $ kcadm.sh delete components/PROVIDER_ID -r demorealm
    Copy to Clipboard Toggle word wrap

レルムのイベントロギングの設定

events/config エンドポイントで update コマンドを使用します。

eventsListeners 属性には、イベントを受信するすべてのイベントリスナーを指定する EventListenerProviderFactory ID の一覧が含まれます。個別に、ビルトインイベントストレージを制御する属性があり、管理 REST API 経由で過去のイベントをクエリーできます。サービス呼び出しのロギング (eventsEnabled) および監査イベントは、管理コンソールまたは管理者 REST API (adminEventsEnabled) 中にトリガーされる別個のコントロールがあります。データベースに満杯にならないように古いイベントの有効期限を設定することもできます。eventsExpiration は秒単位で表される持続可能時間に設定されます。

すべてのイベントを受信し、jboss-logging 経由でログに記録する組み込みイベントリスナーの設定例を以下に示します。(org.keycloak.events と呼ばれるロガーを使用して、エラーイベントは WARN としてログに記録され、それ以外は DEBUG としてログに記録されます。)

たとえば、以下のようになります。

  • Linux:
$ kcadm.sh update events/config -r demorealm -s 'eventsListeners=["jboss-logging"]'
Copy to Clipboard Toggle word wrap
  • Windows:
c:\> kcadm update events/config -r demorealm -s "eventsListeners=[\"jboss-logging\"]"
Copy to Clipboard Toggle word wrap

次に、利用可能なすべての ERROR イベント (監査イベントは含まない) のストレージを 2 日間有効にして、管理 REST 経由で取得できるようにする例を示します。

たとえば、以下のようになります。

  • Linux:
$ kcadm.sh update events/config -r demorealm -s eventsEnabled=true -s 'enabledEventTypes=["LOGIN_ERROR","REGISTER_ERROR","LOGOUT_ERROR","CODE_TO_TOKEN_ERROR","CLIENT_LOGIN_ERROR","FEDERATED_IDENTITY_LINK_ERROR","REMOVE_FEDERATED_IDENTITY_ERROR","UPDATE_EMAIL_ERROR","UPDATE_PROFILE_ERROR","UPDATE_PASSWORD_ERROR","UPDATE_TOTP_ERROR","VERIFY_EMAIL_ERROR","REMOVE_TOTP_ERROR","SEND_VERIFY_EMAIL_ERROR","SEND_RESET_PASSWORD_ERROR","SEND_IDENTITY_PROVIDER_LINK_ERROR","RESET_PASSWORD_ERROR","IDENTITY_PROVIDER_FIRST_LOGIN_ERROR","IDENTITY_PROVIDER_POST_LOGIN_ERROR","CUSTOM_REQUIRED_ACTION_ERROR","EXECUTE_ACTIONS_ERROR","CLIENT_REGISTER_ERROR","CLIENT_UPDATE_ERROR","CLIENT_DELETE_ERROR"]' -s eventsExpiration=172800
Copy to Clipboard Toggle word wrap
  • Windows:
c:\> kcadm update events/config -r demorealm -s eventsEnabled=true -s "enabledEventTypes=[\"LOGIN_ERROR\",\"REGISTER_ERROR\",\"LOGOUT_ERROR\",\"CODE_TO_TOKEN_ERROR\",\"CLIENT_LOGIN_ERROR\",\"FEDERATED_IDENTITY_LINK_ERROR\",\"REMOVE_FEDERATED_IDENTITY_ERROR\",\"UPDATE_EMAIL_ERROR\",\"UPDATE_PROFILE_ERROR\",\"UPDATE_PASSWORD_ERROR\",\"UPDATE_TOTP_ERROR\",\"VERIFY_EMAIL_ERROR\",\"REMOVE_TOTP_ERROR\",\"SEND_VERIFY_EMAIL_ERROR\",\"SEND_RESET_PASSWORD_ERROR\",\"SEND_IDENTITY_PROVIDER_LINK_ERROR\",\"RESET_PASSWORD_ERROR\",\"IDENTITY_PROVIDER_FIRST_LOGIN_ERROR\",\"IDENTITY_PROVIDER_POST_LOGIN_ERROR\",\"CUSTOM_REQUIRED_ACTION_ERROR\",\"EXECUTE_ACTIONS_ERROR\",\"CLIENT_REGISTER_ERROR\",\"CLIENT_UPDATE_ERROR\",\"CLIENT_DELETE_ERROR\"]" -s eventsExpiration=172800
Copy to Clipboard Toggle word wrap

以下は、保存されたイベントタイプを 利用可能なすべてのイベントタイプ にリセットする方法の例になります。すべてのイベントタイプを列挙するのと同じものになります。

$ kcadm.sh update events/config -r demorealm -s enabledEventTypes=[]
Copy to Clipboard Toggle word wrap

以下は、監査イベントのストレージを有効にする方法の例になります。

$ kcadm.sh update events/config -r demorealm -s adminEventsEnabled=true -s adminEventsDetailsEnabled=true
Copy to Clipboard Toggle word wrap

最新の 100 イベントを取得する方法の例を以下に示します。これらは最新のものから最も古いものへと順序付けられます。

$ kcadm.sh get events --offset 0 --limit 100
Copy to Clipboard Toggle word wrap

以下は、保存されたすべてのイベントを削除する方法の例になります。

$ kcadm delete events
Copy to Clipboard Toggle word wrap

キャッシュのフラッシュ

  1. create コマンドと、clear-realm-cacheclear-user-cache、または clear-keys-cache のいずれかのエンドポイントを使用します。
  2. realm をターゲットレルムと同じ値に設定します。

    以下に例を示します。

    $ kcadm.sh create clear-realm-cache -r demorealm -s realm=demorealm
    $ kcadm.sh create clear-user-cache -r demorealm -s realm=demorealm
    $ kcadm.sh create clear-keys-cache -r demorealm -s realm=demorealm
    Copy to Clipboard Toggle word wrap

エクスポートされた .json ファイルからのレルムのインポート

  1. partialImport エンドポイントで create コマンドを使用します。
  2. ifResourceExists を、FAILSKIPOVERWRITE のいずれかに設定します。
  3. -f を使用して、エクスポートしたレルムの .json ファイルを送信します。

    以下に例を示します。

    $ kcadm.sh create partialImport -r demorealm2 -s ifResourceExists=FAIL -o -f demorealm.json
    Copy to Clipboard Toggle word wrap

    レルムが存在しない場合は、最初に作成する必要があります。

    以下に例を示します。

    $ kcadm.sh create realms -s realm=demorealm2 -s enabled=true
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat