20.3. 認証
管理 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/auth --realm master --user admin --password admin
$ kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password admin
このアプローチでは、取得したアクセストークンと関連する更新トークンを保存することで、kcadm
コマンド呼び出し間の認証セッションを維持します。プライベート設定ファイルで他のシークレットを保持することもできます。設定ファイルの詳細は、次の章を参照してください。
2 つ目のアプローチでは、呼び出しの間に各コマンド呼び出しが認証されるだけです。この方法では、トークンの取得でラウンドトリップで費やした時間がサーバーの負荷と長くなります。このアプローチの利点は、呼び出し間でトークンを保存する必要はありません。つまり、ディスクには保存されません。このモードは、--no-config
引数の指定時に使用されます。
たとえば、操作の実行時に、認証に必要な情報をすべて指定します。
kcadm.sh get realms --no-config --server http://localhost:8080/auth --realm master --user admin --password admin
$ kcadm.sh get realms --no-config --server http://localhost:8080/auth --realm master --user admin --password admin
管理 CLI の使用に関する詳細情報は、kcadm.sh help
コマンドを実行します。
認証セッションの開始に関する詳細は、kcadm.sh config credentials --help
コマンドを実行します。