18.4. 認証
管理 CLI でログインする場合に、以下を指定します。
- サーバーエンドポイント URL
- レルム
- ユーザー名
別のオプションとして、clientId のみを指定して、使用する固有のサービスアカウントを作成します。
ユーザー名を使用してログインする場合は、指定したユーザーのパスワードを使用します。clientId を使用してログインする場合、ユーザーパスワードではなくクライアントシークレットのみが必要になります。クライアントシークレットの代わりに Signed JWT
を使用することもできます。
セッションに使用されるアカウントに、Admin REST API 操作を呼び出すための適切なパーミッションがあることを確認してください。たとえば、realm-management
クライアントの realm-admin
ロールは、ユーザーのレルムを管理できます。
認証には 2 つの主なメカニズムを使用できます。1 つのメカニズムは kcadm config credentials
を使用して認証セッションを開始します。
$ kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin
この仕組みでは、取得したアクセストークンと関連する更新トークンを保存することで、kcadm
コマンド呼び出し間の認証セッションを維持します。プライベート設定ファイルで他のシークレットを保持することができます。詳細は、次の章 を参照してください。
2 つ目のメカニズムは、呼び出し中に各コマンド呼び出しを認証します。このメカニズムは、サーバーの負荷と、ラウンドトリップに費やされた時間を増やします。このアプローチの利点は、呼び出し間でトークンを保存する必要がないので、ディスクには何も保存されない点です。Red Hat build of Keycloak は、--no-config
引数が指定されている場合にこのモードを使用します。
たとえば、操作の実行時に、認証に必要な情報をすべて指定します。
$ kcadm.sh get realms --no-config --server http://localhost:8080 --realm master --user admin
管理 CLI の使用に関する詳細情報は、kcadm.sh help
コマンドを実行します。
認証セッションの開始に関する詳細は、kcadm.sh config credentials --help
コマンドを実行します。
--password オプションを指定しない場合(通常はコマンドの一部としてパスワードを提供しないようにすることが推奨されます)、環境変数 KC_CLI_PASSWORD として指定されていない限り、パスワードの入力を求められます。