2.3. roxctl CLI を使用した認証
認証には、API トークン、管理者パスワード、または roxctl Central login
コマンドを使用できます。
API トークンを効果的に使用するには、次のガイドラインに従ってください。
- 継続的インテグレーション (CI) を備えた運用環境で API トークンを使用します。各トークンには特定のアクセス許可が割り当てられ、実行できるアクションを制御できます。さらに、API トークンはブラウザーベースのログインなどの対話型プロセスを必要としないため、自動プロセスに最適です。これらのトークンの有効期間 (TTL) の値は 1 年で、有効期間が長くなり、シームレスな統合と運用効率が向上します。
- 管理者パスワードはテスト目的にのみ使用してください。これを実稼働環境で使用しないでください。
-
roxctl Central login
コマンドは、対話型かつローカルでのみ使用してください。
2.3.1. API トークンの作成
手順
-
RHACS ポータルで、Platform Configuration
Integrations に移動します。 - Authentication Tokens カテゴリーまでスクロールし、API Token をクリックします。
- Generate Token をクリックします。
- トークンの名前を入力し、必要なレベルのアクセスを提供するロールを選択します (たとえば、Continuous Integration または Sensor Creator)。
Generate をクリックします。
重要生成されたトークンをコピーして安全に保存します。再度表示することはできません。
2.3.2. API トークンのエクスポートと保存
手順
認証トークンを生成したら、次のコマンドを入力して、
ROX_API_TOKEN
変数としてエクスポートします。$ export ROX_API_TOKEN=<api_token>
(オプション): 次のコマンドを入力して、トークンをファイルに保存し、
--token-file
オプションとともに使用することもできます。$ roxctl central debug dump --token-file <token_file>
次のガイドラインに注意してください。
-
-password
(-p
) オプションと--token-file
オプションの両方を同時に使用することはできません。 -
すでに
ROX_API_TOKEN
変数を設定しており、--token-file
オプションを指定していると、roxctl
CLI は指定されたトークンファイルを認証に使用します。 -
すでに
ROX_API_TOKEN
変数を設定しており、--password
オプションを指定していると、roxctl
CLI は指定されたパスワードを認証に使用します。
2.3.3. 認証プロバイダーを使用した roxctl での認証
Central で認証プロバイダーを設定し、roxctl
CLI を使用してログインプロセスを開始できます。次の手順で説明するように、ROX_ENDPOINT
変数を設定し、roxctl central login
コマンドでログインプロセスを開始し、ブラウザーウィンドウで認証プロバイダーを選択して、roxctl
CLI からトークン情報を取得します。
前提条件
- フラグメントモードまたはクエリーモードの OpenID Connect (OIDC) など、任意の認証プロバイダーを選択しました。
手順
次のコマンドを実行して、
ROX_ENDPOINT
変数を Central のホスト名とポートに設定します。export ROX_ENDPOINT=<central_hostname:port>
次のコマンドを実行して、Central へのログインプロセスを開始します。
$ roxctl central login
-
roxctl
CLI 内では、URL が出力として出力され、ブラウザーウィンドウにリダイレクトされ、使用する認証プロバイダーを選択できます。 認証プロバイダーを使用してログインします。
ログインに成功すると、認証が成功したことがブラウザーウィンドウに表示されるので、ブラウザーウィンドウを閉じることができます。
roxctl
CLI は、アクセストークン、アクセストークンの有効期限、更新トークンが発行されている場合はそのトークン、これらの値がローカルに保存されているという通知などの詳細を含むトークン情報を表示します。出力例
Please complete the authorization flow in the browser with an auth provider of your choice. If no browser window opens, please click on the following URL: http://127.0.0.1:xxxxx/login INFO: Received the following after the authorization flow from Central: INFO: Access token: <redacted> 1 INFO: Access token expiration: 2023-04-19 13:58:43 +0000 UTC 2 INFO: Refresh token: <redacted> 3 INFO: Storing these values under $HOME/.roxctl/login… 4
重要設定が保存されるディレクトリーを決定するように環境を設定してください。デフォルトでは、設定は
$HOME/.roxctl/roxctl-config
ディレクトリーに保存されます。-
$ROX_CONFIG_DIR
環境変数を設定すると、設定は$ROX_CONFIG_DIR/roxctl-config
ディレクトリーに保存されます。このオプションは、優先度が最も高くなります。 -
$XDG_RUNTIME_DIR
環境変数を設定し、$ROX_CONFIG_DIR
変数が設定されていないと、設定は$XDG_RUNTIME_DIR/roxctl-config
ディレクトリーに保存されます。 -
$ROX_CONFIG_DIR
または$XDG_RUNTIME_DIR
環境変数を設定しないと、設定は$HOME/.roxctl/roxctl-config
ディレクトリーに保存されます。
-