Box API: セキュリティについて

Box Developers
Mar 24 · 10 min read

Box APIを初めて使用するユーザーであっても、カスタムアプリケーションの承認作業を任されているBox管理者であっても、Boxに保存されているコンテンツを保護するために実装されているセキュリティメカニズムを理解しておくことは重要です。この記事を読み終えるまでに、Box APIを操作する際のアクセス制限について理解を深めていただければ幸いです。なお、セキュリティに関して、APIはBoxウェブアプリと同じ原則および規制事項に従うこととなります。

トークン

アクセストークンの機能の元となる要素

さまざまなBox API呼び出しの中核となるのはです。API呼び出しにはユーザー名とパスワードを使用できないため、Boxサーバーにはユーザーの本人確認を行う手段が必要になります。アクセストークンは認証済みのユーザーを表し、ユーザーが問題なく呼び出すことができるコンテンツを決定します。Boxウェブアプリを使用する場合と同様に、問題なく操作できるのは、アクセストークンに関連付けられたユーザーが所有するコンテンツまたはコラボレータとなっているコンテンツのみです。これは、によってさらに制限できます。

の有効期限は60分のみですが、いつでもことができます。その期限が過ぎると、別の新しいアクセストークンの代わりに(60日後または1回の使用後に有効期限が切れます) を渡すことができます。セキュリティ上の理由により、Boxでは有効期間の長いアクセストークンを許可していません。

ヒント: エラー(特に404) が発生して、その理由がわからない場合は、まず、を使用して、アクセストークンに関連付けられているユーザーを確認することをお勧めします。

アプリケーションスコープ

開発者コンソールでのアプリケーションスコープの設定

ユーザーはでアプリケーションを作成する際に、を設定する必要があります。スコープにより、Boxの150を超えるエンドポイントのうち、アプリケーションが問題なく呼び出せるものが決まります。また、スコープは、アプリケーションのアク

セストークンによって提供されるアクセス権限に反映されます。つまり、書き込みスコープを付与しても、ユーザーは、Box Enterpriseのすべてのコンテンツに自動的にアクセスできるわけではありません。アクセス権限のあるフォルダの名前変更やフォルダの新規作成などの操作が実行できるようになるだけです。たとえば、ユーザーの管理およびグループの管理のスコープだけが有効になっているアプリケーションを作成するとしましょう。フォルダの情報を取得するAPI呼び出しを実行しようとすると、そのフォルダへのアクセス権限がある場合でも、403エラーが返されます。一方、ユーザーを作成するAPI呼び出しを実行した場合、ユーザーを作成できる管理者にアクセストークンが関連付けられていれば、この呼び出しは成功します。

制限されたエンドポイント

管理者または適切な共同管理者のみが問題なく使用できるAPIエンドポイントがいくつかありま

す。原則として、管理者/共同管理者だけがBox管理コンソールで実行できる操作の場合、その操作のAPIを作成するには、これらのユーザーのいずれかに関連付けられたアクセストークンを使用する必要があります。これについては、必要に応じて、このエンドポイントに関するを参照してください。

管理者に制限されたエンドポイントの一部を以下に示します。

企業でなどのアドオン製品を購入している場合は、管理者のトークンでのみ使用できるエンドポイントが他にもあります。

このようなエンドポイントを以下に示します。

アプリケーションアクセス

開発者コンソールでのアプリケーションアクセスの設定

を利用するアプリケーションのアプリケーションアクセスは、開発者コンソールでのみ設定できます。これにより、このアプリを操作できるユーザータイプが決まります。[アプリアクセスのみ] と [アプリアクセス + Enterpriseアクセス] という2つのオプションがあります。

Box管理コンソールでJWTアプリケーションを承認すると、そのアプリケーションの (AutomationUser_xxxx_@boxdevedition.com) が自動的に生成されます。このアカウントは管理者に似たユーザーで、APIを介してしかアクセスできません。その後、このユーザーを使用して、と呼ばれる、アプリケーションのユーザーを作成することができます。簡潔に言うと、やその既存のBoxコンテンツを操作しなければならないアプリケーションの場合は、[アプリアクセス + Enterpriseアクセス] を選択します。[アプリアクセス + Enterpriseアクセス] を選択したからといって、アプリがBox Enterprise内のすべてのコンテンツにアクセスできるようになるわけではないことに注意してください。

たとえば、読み取り/書き込みスコープと [アプリアクセスのみ] が指定されたJWTアプリケーションがあり、管理コンソールで適切に承認されているとしましょう。次に、管理対象ユーザーがこのアプリケーションのアクセストークンを取得し、自分が所有するフォルダに対してAPI呼び出しを実行します。どうなるか考えてみてください。この呼び出しは成功するでしょうか、それとも失敗するでしょうか。またその理由はわかりますか。

この呼び出しは失敗すると答えた人が正解です。この呼び出しでは、「Cannot obtain token based on the enterprise configuration for your app (アプリに対するEnterprise設定に基づきトークンを取得できません)」というメッセージと共に400エラーが返されます。ユーザーにコンテンツへのアクセス権限があり、適切なスコープと承認がすべて確認されていても、アプリケーションアクセスでアプリケーションの操作が許可されるのは、サービスアカウントとApp Userのみです。

Enterprise設定と承認

Box APIに関して言えば、注意すべきEnterprise設定がいくつかあります。

管理コンソールにおけるJWTアプリの承認

JWTアプリケーションを企業で使用するために、管理者はBox管理コンソールでそのアプリケーションを必要があります。これを行うには、[アプリ] > [カスタムアプリ] に移動して [+] ボタンをクリックします。承認は特定時点でのスナップショットです。つまり、開発者が開発者コンソールに再度アクセスして設定を変更した場合は、管理者がその変更を有効にするためにアプリケーションを再承認する必要があります。

Box管理コンソールの [アプリ全体の設定]

カスタムアプリケーションは、公開アプリケーションと未公開アプリケーションという2つのカテゴリに分類されます。公開アプリケーションは、にあります。Box管理者は、公開アプリケーションと未公開アプリケーションをことによって、承認なしで使用できるようにするかどうかを決定できます。これらの設定にアクセスするには、管理コンソールの [アプリ] > [カスタムアプリ] タブで⚙ボタンをクリックします。

デフォルトで公開アプリケーションを無効にするための設定を管理者が有効にする場合は、管理コンソールを使用して、次のように移動します。

[アプリ] > [Boxアプリと統合] タブ > []

有効にするアプリケーションを検索します。[フィルタをクリア] ボタンが表示されている場合は必ずクリックしてください。そうしないと、アプリケーションが見つからない可能性があります。アプリケーションの横にあるドロップダウンをクリックして [使用可能] に設定します。

デフォルトで未公開アプリケーションを無効にするための設定を管理者が有効にする場合、アプリケーションを有効にするための手順は、アプリケーションのによって異なります。

  • OAuth 2.0: 呼び出しを成功させるには、管理者がアプリケーションのAPIキーを許可リストに追加する必要があります。
  • サーバー認証 (JWT使用): 呼び出しを成功させるには、管理者がし、上記のスクリーンショットに示すようにAPIキーを許可リストに追加する必要があります。

管理者は、デフォルトで未公開アプリケーションを無効にするための設定を有効にしない場合でも、すべてのJWTアプリケーションを承認する必要があることに注意してください。その結果、許可リストにJWTアプリケーションも追加する必要がなくなります。

まとめ

  • アクセストークンにより、アプリで問題なく呼び出せるコンテンツが決まります。
  • アプリケーションスコープにより、アプリで問題なく呼び出せるAPIエンドポイントが決まります。
  • 制限されたエンドポイントは、管理者または共同管理者のアクセストークンのみで使用できます。
  • アプリケーションアクセス (JWTのみ) により、アプリを操作できるユーザータイプが決まります。
  • Enterprise設定により、アプリケーションをデフォルトで無効にするかどうかが決まります。
  • JWTアプリがBox Enterpriseとやり取りできるようにするには、Box管理者による承認が必要です。

Please for the English version of this post.

Box Developer Blog

News and stories for working with the Box APIs

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface.

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox.

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store