スコープ
スコープ
開発者コンソールでアプリケーションが作成されると、ユーザーはアプリケーションのスコープを設定する必要があります。ユーザーにBox内のファイルやフォルダへのアクセス権限が付与されるしくみと同様、アプリケーションにも、BoxユーザーやBoxを使用する企業に代わって特定のアクションを実行するための独自の権限が付与されます。アプリケーションに対する権限セットの名前を「スコープ」と言います。つまり、アプリケーションのスコープにより、アプリケーションから呼び出すことのできるエンドポイントが決まります。また、このスコープは、アプリケーションのアクセストークンが提供するアクセス権限に反映されます。
ユーザー権限とスコープ
アクションを実行するための適切なスコープがアプリケーションに設定されている場合でも、アクセストークンと関連付けられた、呼び出しを実行するユーザーにはそのアクションを実行するための権限が必要であり、逆の場合も同様であることを理解することが重要です。
たとえば、ファイルを読み取るようにアプリケーションが設定されている場合、アクセスしようとするファイルの読み取り権限が認証済みユーザーにも必要です。
スコープ、トークンの権限、ユーザー権限がどのように連携しているかの詳細については、Boxのセキュリティガイドを参照してください。
スコープとOAuth 2承認
アプリケーションを承認するためにクライアント側のOAuth 2フローを介してユーザーを送信する際は、承認URLに一連のスコープを追加してユーザーのアクセストークンをさらに制限できます。
たとえば、アプリケーションでroot_readonlyおよびroot_readwriteスコープが有効になっている場合は、ユーザーのリダイレクト時にこのスコープを指定することで、ユーザーのアクセストークンをroot_readonlyに制限できます。
GET https://account.box.com/api/oauth2/authorize?scope=root_readonly&client_id=....
スコープパラメータが省略されている場合、アプリケーションでは、そのアプリケーションの作成時に設定されたスコープが使用されます。
セルフサービススコープ
これらのスコープは、アプリケーションの設定時に開発者コンソールから使用できます。[構成] タブの [アプリケーションスコープ] セクションに移動して、以下のスコープから1つ以上を選択します。
すべてのファイルとフォルダの読み取り
| OAuthスコープ | root_readonly |
| アプリケーションスコープ | Boxに格納されているすべてのファイルとフォルダの読み取り |
アプリケーションで、認証済みユーザーはすべてのファイル/フォルダを読み取ることができるようになります。
これにより、アプリケーションにはファイルとフォルダに対する読み取り権限が付与されますが、APIコールを実行するユーザーには、アクセス対象の項目に対するアクセス権限が必要です。
つまり、JWTアプリケーションが管理対象ユーザーの項目にアクセスする場合、サービスアカウントのトークンは、そのコンテンツにアクセスできるユーザーとして直接認証されるように、as-userヘッダーを使用するか、ユーザーアクセストークンを作成する必要があります。
すべてのファイルとフォルダの読み取りと書き込み
| OAuthスコープ | root_readwrite |
| アプリケーションスコープ | Boxに格納されているすべてのファイルとフォルダの読み取りと書き込み |
アプリケーションには、認証済みユーザーの書き 込みアクセス権限が付与されます。これにより、アプリケーションでは、ファイルまたは新しいファイルバージョンのアップロード、コンテンツのダウンロード、新しいフォルダの作成、コラボレーションの更新または削除、コメントまたはタスクの作成などを実行できるようになります。
これにより、アプリケーションには項目に対する読み取り/書き込みアクセス権限が付与されますが、APIコールを行うユーザーには、コンテンツに対するアクセス権限が必要です。
ユーザーを管理する
開発者コンソールにある「ユーザーを管理する」スコープは、2つのOAuthスコープにマップされます。
| OAuthスコープ | manage_managed_users |
| アプリケーションスコープ | ユーザーを管理する |
アプリケーションには、管理対象ユーザーを管理するための権限が付与されます。これにより、このアプリでは、ユーザーのプライマリログインの変更、ユーザーのパスワードのリセット、管理対象ユーザーのロールの変更を実行できます。
| OAuthスコープ | manage_app_users |
| アプリケーションスコープ | ユーザーを管理する |
アプリケーションには、App Userを管理するための権限が付与されます。つまり、このスコープは、サーバー側で認証されている (JWT) アプリケーションのみに適用されます。
グループを管理する
| OAuthスコープ | manage_groups |
| アプリケーションスコープ | グループを管理する |
アプリケーションには、企業のグループを管理するための権限が付与されます。これにより、このアプリでは、グループの作成、更新、削除のほか、グループメンバーシップの管理を実行できます。
Webhookを管理する
| OAuthスコープ | manage_webhook |
| アプリケーションスコープ | Webhookを管理する |
アプリケーションには、ユーザーのWebhookを作成するための権限が付与されます。Webhookの制限を確認してください。注目すべきは、1ユーザーにつき1つのアプリケーションあたりWebhookは1,000個までという制限があることです。