keenauth login でサインイン

keenauth login は、ダッシュボードのアカウントでサインインするため、APIキーを作成しなくてもターミナルから環境を管理できます。CI ジョブやスクリプトでは、引き続き KEENAUTH_API_KEY に APIキーを設定して使用してください(コマンドラインインターフェイス を参照)。

コマンド

コマンド 内容
keenauth login デバイスフローでサインインします。CLI がアドレスとコードを表示するので、任意のデバイスでそのアドレスを開き、ダッシュボードにサインインしてコードを入力します。
keenauth login --web このコンピュータのブラウザでサインインします。CLI がサインインページを開き、結果を http://127.0.0.1:<port>/callback(または http://[::1]:<port>/callback)で受け取ります。リクエストは PKCE(S256)、state、iss パラメータで保護されます。
keenauth whoami サインインしているユーザー、組織、選択中の環境を表示します。
keenauth env use <environment_id> 以降のコマンドで管理する環境を選択します。コントロールプレーンは、その環境でダッシュボードのロールを持っているかを確認します。
keenauth env list コントロールプレーンから、操作可能な環境を一覧表示します。env use で選択中の環境には * が付きます。
keenauth logout サーバー上のセッションを取り消し、このコンピュータから削除します。
keenauth login
keenauth env use env_01j9z3c0000000000000000000
keenauth users list

KEENAUTH_API_KEY が設定されている場合は、それが常に優先されます。保存済みのセッションは、APIキーが設定されていない場合にのみ使用されます。

環境の一覧表示

keenauth env list は、サインインしたアカウントのうち、ダッシュボードのロールを持つ環境の一覧をコントロールプレーンに問い合わせます(GET /v1/environments、CLI 用の環境一覧 を参照)。セッションが必要で、ない場合は keenauth login の実行を求めるメッセージが表示されます。

フラグ 説明
--limit 1ページあたりの件数。1〜100(既定値は 20)。
--after 前のページに表示されたカーソル(more results: --after <cursor>)。
--all ページをたどって、すべての環境を一覧表示します。
-o table|json|yaml 出力形式。表形式では選択中の環境に * が付き、JSON と YAML では該当する各行に current: true が付きます。

無効または他の一覧から得た --after カーソルは拒否されます(invalid_cursor)。そのカーソルを外して、コマンドを再実行してください。

セッションの仕組み

セッションの保存先

保存内容 保存先
発行元、ユーザー ID、組織、DPoP キーのサムプリント、選択中の環境 KEENAUTH_CONFIG_DIR 内の config.json、またはユーザー設定ディレクトリ配下の keenauth(モード 0600)
リフレッシュトークンと DPoP 秘密鍵 OS のキーチェーン:macOS のキーチェーン(security)または Linux の Secret Service(secret-tool)

秘密情報はキーチェーンツールに標準入力で渡され、コマンド引数として渡されることはありません。キーチェーンが利用できない場合(Windows や、Secret Service のない Linux サーバーなど)、keenauth login はエラーで停止します。その場合は --insecure-storage を指定すると、リフレッシュトークンと DPoP 秘密鍵を、config.json と同じ場所にある credentials.json(モード 0600)に暗号化せずに保存できます。CLI は警告を表示します。このファイルを読み取れる人は、セッションの有効期限が切れるまであなたになりすますことができます。共有マシンでは APIキーの使用を推奨します。

設定

変数 既定値 説明
KEENAUTH_LOGIN_ISSUER https://login.keenauth.com サインインサーバー。https アドレスである必要があります。
KEENAUTH_CONTROL_URL https://api.keenauth.com/v1 管理トークンを発行するコントロールプレーン。https アドレスである必要があります。
KEENAUTH_CONFIG_DIR ユーザー設定ディレクトリ + keenauth config.json(--insecure-storage 指定時は credentials.json も)を保存する場所。

エラー

メッセージ 対処方法
you are not signed in / your session has expired or was revoked keenauth login を再度実行してください。終了コード 3。
no environment is selected keenauth env use <environment_id> を実行してください。
environment … does not exist or you have no dashboard role in it ダッシュボードで ID を確認するか、オーナーにロールの付与を依頼してください。
no OS keychain is available キーチェーンをインストールするか、--insecure-storage を使用するか、APIキーを使用してください。