コードを手動で入力して、ブラウザのないマシンでBox CLIを認証します。
ブラウザが使用できないリモートサーバー、コンテナ、CI/CDパイプラインなど、ヘッドレス環境でBox CLIを認証するには、--codeフラグを使用します。
前提条件
- Box CLIが。
- 承認手順を完了するための別のマシン (例えばノートパソコン) でブラウザにアクセスできる。
仕組み
標準のbox loginコマンドを実行すると、同じマシンでブラウザが開かれ、自動的に承認レスポンスを受信するローカルのコールバックサーバーが起動します。ヘッドレス環境では、そのどちらもできません。
--codeフラグを使用すると、ログインフローが変更されます。
- ブラウザが開く代わりに、CLIによって承認URLが出力されます。
- ローカルのコールバックサーバーは起動されません。
- 別のマシンのブラウザで承認を行った後、そこで得られるコードと状態を手動でコピーしてCLIに入力します。
手順1: --codeフラグを指定してログインを開始する
ヘッドレスマシンで、次のコマンドを実行します。
CLIに承認URLが出力され、入力を待機する状態になります。
--codeはその他のbox loginオプションと組み合わせることができます。例えば、カスタムのBox Platformアプリで認証を行う場合は、求められたときにクライアントIDとクライアントシークレットを指定します。
手順2: 別のマシンのブラウザで承認を行う
CLIに出力された承認URLをコピーし、ブラウザがあるマシンでそのURLを開きます。Boxにサインインして [Boxへのアクセスを許可] を選択します。
手順3: リダイレクトURLからコードと状態をコピーする
アクセスを許可すると、ブラウザでlocalhostコールバックURLにリダイレクトされます。ヘッドレスマシンではコールバックサーバーが実行されていないため、ページは読み込まれず、ブラウザには接続エラーが表示されます。これは想定どおりの動作です。
ブラウザのアドレスバーのURLを見ると、必要な値が含まれています。
http://localhost:3000/callback?state=AUTHORIZATION_STATE&code=CODE_VALUE
このURLからcodeとstateの値をコピーしてください。
手順4: CLIでコードを入力する
ヘッドレスマシンのターミナルに戻って、codeとstateの値をCLIのプロンプトに貼り付けます。
CLIによって認証の成功が確認されると、コマンドを実行できる状態になります。
手順5: 設定を確認する
認証が成功すると、CLIはBoxユーザーアカウントに関する情報を返します。
ブラウザがあるマシンでの--codeの使用
--codeフラグは、ヘッドレス環境用のオプションです。ブラウザがあるマシンで使用すると、以下のようになります。
- CLIでは引き続き承認URLが出力されます。
- 承認後、ブラウザでコールバックURLにリダイレクトされます。
--codeによってローカルのコールバックサーバーの起動がスキップされるため、リダイレクトページは読み込まれず、ブラウザには接続エラーが表示されます。
- ヘッドレス環境と同様、CLIは
codeとstateの値が手動で入力されるのを待機し続けます。
同じマシンでブラウザが使用できる場合は、--codeを指定せずにbox loginを実行することで、スムーズにログインできます。