> ## 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.

# JWT認証を使用したBox CLI

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = localizeLink(href);
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

<RelatedLinks
  title="必須のガイド"
  items={[
{ label: translate("Setup with JWT"), href: "/guides/authentication/jwt/jwt-setup", badge: "GUIDE" }
]}
/>

これまで、<Link href="/guides/cli">Box CLIのクイックスタートガイド</Link>では、JWTアプリケーションまたはサーバー認証アプリケーションの設定フローについて説明してきましたが、新しくOAuth 2.0バージョンのBox CLIをリリースしたため、新機能の使用についてガイドを更新しました。当初のJWTの設定手順については、引き続きサーバー認証アプリケーションを使用したい方のために、こちらに移動しました。

## JWTアプリケーションの設定

サーバー認証を使用したCLIを使用するには、まず、[開発者コンソール][dc]でBoxアプリケーションを作成します。CLIはAPIコールを実行する際にバックグラウンドでこのアプリケーションを使用できます。CLIを既存のJWTアプリケーションに関連付ける場合は、この手順を省略できます。ただし、少なくとも、以下のスコープがアプリケーションの \[**構成**] タブで設定されていることを確認してください。

* Boxに格納されているすべてのファイルとフォルダの読み取り
* Boxに格納されているすべてのファイルとフォルダへの書き込み

1. \[すべてのファイル] ページの左側にあるナビゲーションパネルから、[開発者コンソール][dc]を開きます。今回Box APIを使用するのが初めてで、このオプションがまだ使用できない場合は、[こちら][dc]をクリックするとこのオプションをアカウントに追加できます。

2. \[**Platformアプリの作成**] > \[**Platformアプリ**] > \[**サーバー認証 (JWT使用)**] の順にクリックし、アプリケーションに名前を付けて、\[**アプリの作成**] をクリックします。

<Warning>
  サーバー認証 (JWT使用) は、使用する前に必ず管理者の承認が必要になります。
</Warning>

## アプリケーションの構成

これにより、アプリケーションの設定ページが表示され、そこで、そのアクセスや権限を選択する必要があります。アプリケーションの認証タイプが原因で、管理者の承認が必要になることにもう一度注意してください。

少なくとも、以下の<Link href="/guides/api-calls/permissions-and-errors/scopes">スコープ</Link>が必要です。

* Boxに格納されているすべてのファイルとフォルダの読み取り
* Boxに格納されているすべてのファイルとフォルダへの書き込み

<Link href="/guides/authentication/jwt/jwt-setup/#application-access">アプリケーションアクセス</Link>として、\[アプリアクセスのみ] または \[アプリ + Enterpriseアクセス] のいずれかを選択できます。

## アプリケーションの承認

APIコールを正常に実行する前に、サーバー認証を利用するすべてのアプリケーションを管理コンソールで承認する必要があります。これは、すべてのJWTアプリケーションには<Link href="/platform/user-types/#service-account">サービスアカウント</Link>があるためです。サービスアカウントは、アプリケーションの<Link href="/guides/api-calls/permissions-and-errors/scopes">スコープ</Link>に基づいて管理者アクションを実行できます。

開発者と管理者向けの手順については、Boxの<Link href="/guides/authorization/platform-app-approval">承認ガイド</Link>を参照してください。

スコープ、アプリケーションアクセス、トークン、権限がどのように連携しているかの詳細については、[Boxのセキュリティメカニズム][blogpost]に関する記事を参照してください。

<Warning>
  設定の変更がこのアプリケーションに対して行われた場合は、その変更を有効にするためにこのアプリケーションを再承認する必要があります。
</Warning>

アプリケーションが使用できる状態になっているかどうかを確認するには、[開発者コンソール][dc]の \[承認] タブを表示します。状態とステータスはそれぞれ、\[有効] と \[承認済み] になっているはずです。

<Frame center>
  <img src="https://mintcdn.com/box/KBEcg4yicgc_HMRY/images/guides/cli/app-authorized.png?fit=max&auto=format&n=KBEcg4yicgc_HMRY&q=85&s=27be93d815e867d5d9685635af2eb312" alt="承認済みのアプリ" width="4125" height="1492" data-path="images/guides/cli/app-authorized.png" />
</Frame>

## 必要なデータのダウンロード

CLIでは、APIコールを実行するために、ローカルに保存されている構成ファイルが必要です。

構成ファイルをダウンロードするには、[開発者コンソール][dc]の \[**構成**] タブにアクセスし、\[**公開/秘密キーペアを生成**] をクリックします。これにより、アプリケーションの構成ファイルを自動的にダウンロードする前に2要素認証が行われます。詳細については、Boxの<Link href="/guides/authentication/jwt/jwt-setup/#public-and-private-key-pair">ガイド</Link>を参照してください。

<Warning>
  セキュリティ上の理由により、公開/秘密キーペアを生成するには、Boxアカウントで2要素認証を有効にする必要があります。
</Warning>

`EnterpriseID_publicKeyID_config.json`という形式のデフォルトの名前が付いているダウンロード済みファイルをコンピュータ上で探します。この名前をそのまま使用しても、変更してもかまいません。このガイドでは、ファイルの名前を`config.json`に変更することを想定しています。

<Warning>
  誤って削除または移動されることがない場所にファイルを配置することが重要です。ファイルが削除または移動された場合は、手順2を繰り返してCLIを再構成する必要があります。
</Warning>

## CLIのインストールと構成

CLIは、任意のプラットフォーム (Linuxなど) にNodeパッケージとしてインストールすることができます。このためには、[Node JS](https://nodejs.org/)をマシンにインストールしておく必要があります。

```bash theme={null}
npm install --global @box/cli
```

## ソースコード

CLIのソースコードは、[GitHub][cli]で提供されています。

## 構成コマンドの実行

ここで、手順1でダウンロードした構成ファイルを指すよう、CLIを構成する必要があります。

<Frame center>
  <div className="w-full h-full bg-[#FFFFFF] p-2 rounded flex items-center justify-center">
    <img src="https://mintcdn.com/box/KBEcg4yicgc_HMRY/images/guides/cli/cli-config-diagram.png?fit=max&auto=format&n=KBEcg4yicgc_HMRY&q=85&s=b49811afe285e1bf13148f87b7aa18f2" alt="CLIの構成図" width="2921" height="1838" data-path="images/guides/cli/cli-config-diagram.png" />
  </div>
</Frame>

ターミナルまたはコマンドラインを開き、`box configure:environments:add PathToConfigFileHere`コマンドを実行します。ここでは、`PathToConfigHere`を`config.json`ファイルのパスに置き換えます。

例: `box configure:environments:add /Users/ExampleUser/Documents/CLI/config.json`

<Tip>
  Finder/エクスプローラからターミナル/コマンドラインウィンドウにcsvファイルをドラッグすると、パスを自動で入力できます。
</Tip>

## 構成の確認

うまく構成されているか確認するには、コマンド`box users:get`を使用します。

次のように、成功を示すレスポンスには、<Link href="/guides/authentication/tokens">アクセストークン</Link>に関連付けられた<Link href="/platform/user-types/#service-account">サービスアカウント</Link>ユーザーの詳細が示されます。

```json theme={null}
Type: user
ID: ''0123456789''
Name: Box CLI - Quickstart Example
Login: AutomationUser_123456_8jSo6Lqvko@boxdevedition.com
Created At: '2020-01-01T09:45:01-07:00'
Modified At: '2021-03-01T09:30:05-07:00'
Language: en
Timezone: America/Los_Angeles
Space Amount: 999999999999999
Space Used: 6291500
Max Upload Size: 16106127360
Status: active
Job Title: ''
Phone: ''
Address: example+user@box.com
Avatar URL: ''
Notification Email: []
```

<Tip>
  デフォルトでは、JWTアプリケーションはサービスアカウントのアクセストークンを自動的に取得します。デフォルトユーザーの変更は可能ですが、このガイドでは変更しないことを想定しています。
</Tip>

## 次の手順

* コード例をGitHubの[コマンド][commands]ページで確認できます。
* <Link href="/guides/cli/quick-start/build-commands-help">OAuth 2.0のクイックスタート</Link>の2番目の手順に進み、コマンドの使用方法のチュートリアルを確認することもできます。

[cli]: https://github.com/box/boxcli

[auth]: /guides/authentication/jwt/without-sdk

[dc]: https://account.box.com/developers/console

{/* i18n-enable localize-links */}

[blogpost]: https://medium.com/box-developer-japan-blog/box-api-understanding-security-ja-b95725d8aaf0

[four]: /guides/cli/quick-start/using-bulk-commands

[cache]: https://github.com/box/boxcli/blob/master/docs/configure.md#box-configureenvironmentsupdate-name

[ac]: https://github.com/box/boxcli/blob/master/docs/autocomplete.md

[commands]: https://github.com/box/boxcli#command-topics

<RelatedLinks
  title="関連するガイド"
  items={[
{ label: translate("JWT Auth"), href: "/guides/authentication/jwt/index", badge: "GUIDE" },
{ label: translate("Setup with JWT"), href: "/guides/authentication/jwt/jwt-setup", badge: "GUIDE" }
]}
/>
