メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://developer.box.com/llms.txt

Use this file to discover all available pages before exploring further.

コードを手動で入力して、ブラウザのないマシンでBox CLIを認証します。 ブラウザが使用できないリモートサーバー、コンテナ、CI/CDパイプラインなど、ヘッドレス環境でBox CLIを認証するには、--codeフラグを使用します。

前提条件

  • Box CLIが
  • 承認手順を完了するための別のマシン (例えばノートパソコン) でブラウザにアクセスできる。

仕組み

標準のbox loginコマンドを実行すると、同じマシンでブラウザが開かれ、自動的に承認レスポンスを受信するローカルのコールバックサーバーが起動します。ヘッドレス環境では、そのどちらもできません。 --codeフラグを使用すると、ログインフローが変更されます。
  • ブラウザが開く代わりに、CLIによって承認URLが出力されます。
  • ローカルのコールバックサーバーは起動されません。
  • 別のマシンのブラウザで承認を行った後、そこで得られるコードと状態を手動でコピーしてCLIに入力します。

認証

手順1: --codeフラグを指定してログインを開始する

ヘッドレスマシンで、次のコマンドを実行します。
box login --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からcodestateの値をコピーしてください。

手順4: CLIでコードを入力する

ヘッドレスマシンのターミナルに戻って、codestateの値をCLIのプロンプトに貼り付けます。 CLIによって認証の成功が確認されると、コマンドを実行できる状態になります。

手順5: 設定を確認する

box users:get me
認証が成功すると、CLIはBoxユーザーアカウントに関する情報を返します。

ブラウザがあるマシンでの--codeの使用

--codeフラグは、ヘッドレス環境用のオプションです。ブラウザがあるマシンで使用すると、以下のようになります。
  • CLIでは引き続き承認URLが出力されます。
  • 承認後、ブラウザでコールバックURLにリダイレクトされます。--codeによってローカルのコールバックサーバーの起動がスキップされるため、リダイレクトページは読み込まれず、ブラウザには接続エラーが表示されます。
  • ヘッドレス環境と同様、CLIはcodestateの値が手動で入力されるのを待機し続けます。
同じマシンでブラウザが使用できる場合は、--codeを指定せずにbox loginを実行することで、スムーズにログインできます。