メインコンテンツへスキップ
この記事では、Box APIを使用したカスタムアプリケーションによるBox上の企業コンテンツおよびユーザーコンテンツへのアクセスを安全に許可する方法をBox管理者向けに説明します。不適切に使用すると組織に被害を及ぼすアプリケーションも存在するため、アプリケーションを有効化または承認する際は、この記事に記載されている情報に留意してください。 この記事で扱う一般的なシナリオは以下のとおりです。
  • ユーザーまたは開発者から (「クライアントID」か「APIキー」を使用した) カスタムアプリケーションの承認要求または有効化要求を管理者が受け取る。
  • 管理者はBoxのAPIを使用して開発を進めているものの、自身のプロジェクトの指揮を始めたばかりで、アプリケーションスコープの評価方法について詳しく知りたいと思っている。

アプリケーションの有効化

管理者がアプリの有効化要求を受け取った場合は、次の前提条件が想定されます。 管理者は以下を行います。
  • 次のいずれかを実行します。
    • 管理コンソールにログインして、[Platformアプリの追加] をクリックし、クライアントID (APIキー) を入力してアプリの詳細 (スコープなど) を確認します。
    • リクエストのメールにある [アプリの詳細を確認] をクリックし、アプリケーションに関する情報を確認します。
  • このアプリをアクティブにする場合は、管理者がアプリを有効にすることができます。
understanding-requests-to-authorize-login-png

アプリケーションの承認

アプリケーションの承認要求を受け取った管理者は、以下の作業を実施する必要があります。
  • Platformアプリの管理にある手順に従います。
  • アプリケーションを有効化または承認する前に、スコープを確認し (下記を参照)、そのスコープに基づいてアプリケーションを許可するかどうかを判断します。

シナリオ例

前提結果
  • アプリケーションは「ファイルの読み取りと書き込み」アクセス権限を持っている
  • ユーザー権限は「ビューアー」である
ユーザーがアプリケーションを通じてフォルダ内のファイルを削除しようとすると、権限エラーが発生してコールが失敗する
  • アプリケーションは「ファイルの読み取りと書き込み」アクセス権限のみを持っている
  • ユーザーはプライマリ管理者である
ユーザーがアプリケーションを通じてレポートを実行しようとすると、権限エラーが発生してコールが失敗する
  • アプリケーションは「ユーザーの管理」アクセス権限を持っている
  • ユーザーは「ユーザーの管理」権限を持つ共同管理者である
このユーザーが別のユーザーの名前を変更しようとした場合はコールが成功する

スコープの確認

ほとんどのスコープは、その名前から内容を判断できます (ユーザーの管理、ファイルとフォルダの読み取りと書き込みなど)。 すべてのAPIコールに、ユーザースコープ(コラボレーションや共同管理者権限など) とアプリケーションスコープのアクセス制御が適用されます。
重要:アプリケーションスコープ (本質的にはアプリケーションの権限) がユーザー権限とどのように関係しているのかを必ず把握しておいてください。

スコープの例

例1

authorize-custom-app-png
上記のスコープでは、以下の点に注意が必要です。
  • [Boxに格納されているすべてのファイルとフォルダの読み取りと書き込み] の設定だけでは、アプリケーションがすべてのファイルとフォルダを読み書きできることにはなりません。
  • [アクセス対象ユーザー] 設定には [すべてのユーザー] と表示されていますが、仮に [アクセス対象ユーザー] 設定に [アプリケーションのみ] と表示されている場合、このアプリケーションは (企業の管理対象ユーザーとしてではなく) App Userとしてしかコンテンツにアクセスできません。
  • さらに、このアプリケーションは管理者を含め、どのユーザーのトークンでも生成することができます。

例2

understanding-requests-scopeexample2-png
上記のスコープでは、以下の点にも注意が必要です。
  • このアプリケーションは、ファイルとフォルダの読み書きを行うだけでなく、企業全体に関わるほぼすべての操作 (ユーザーアカウントの削除と作成、リテンションポリシーやリーガルホールドポリシーの削除と作成、他のユーザーとしてのログイン) を管理します。
スコープの詳細については、こちらのDeveloperドキュメントを参照してください。 管理者から質問された場合、要求されているスコープについて説明する責任はアプリケーションの開発者にあります。Boxは、特定のスコープの意味を明確にすることは可能ですが、アプリケーションのユースケースやコードについては把握していません。