各種オブジェクトへのAPIコールを作成する際に、応答で次のようなエラーが返されることがあります。
{"type":"error","status":403,"code":"access_denied_insufficient_permissions","help_url":"http://developers.box.com/docs/#errors","message":"Access denied - insufficient permission","request_id":"qbkiebl8v0prtqqn"}
このエラーはBoxが権限を確認する過程で発生します。 APIを通じて実行されるすべてのアクションについてBoxは以下をチェックします。
- アクセストークンを所有しているBoxアカウントの権限
- Boxアプリの権限/スコープ
いずれかのチェックで権限不足と判断されると、上記のエラーが返されます。
このリストはすべてを網羅していません。 Boxでは数多くのアクセス制御オプションを利用できます。 Boxアプリの権限スコープの詳細については、スコープページを参照してください。また、BoxのAPIエンドポイントの具体的な詳細と必要な権限スコープについては、APIリファレンスページを参照してください。
環境
Box Platform - カスタムアプリケーションを通じたBoxへのAPIコール
解決手順
ユーザーにタスクを実行する権限があることを確認します。 最も簡単なチェック方法は、ウェブアプリから同じアクションを実行できるかやってみることです。 以下に例を示します。
- 別のユーザーに「as-user」ヘッダーを使用しようとしている場合、管理コンソールで「Log in as this user (このユーザーとしてログイン)」オプションを使用可能か確認します。 この例でよくある状況は、ユーザーに共同管理権限がないか、共同管理者が別の共同管理者の「as-user」として実行しようとしているか、共同管理者がプライマリ管理者の「as-user」として実行しているかです。
- リーガルホールドなどの高度な機能を使用する場合は、その機能へのアクセス権限を企業が所有している必要があります。
- ルートフォルダ ([すべてのファイル] ページ) にはコラボレータを追加できません。
- 注: 共同管理者には他の共同管理者アカウントを管理する権限がありません。
アプリケーションに対して有効化されているスコープを確認し、対象タスクを実行する権限がアプリケーションにあるかどうかを確認します。 確認箇所は2つあります。
- (クライアント認証およびサーバー認証) 開発者コンソールの対象Boxアプリの [構成] ページ。
-
(サーバー認証のみ) 管理コンソール -> [統合] -> [Platformアプリマネージャ] -> [表示] -> [アプリのスコープ] の企業のBoxアプリのアプリ承認状況。
-
管理者が管理コンソールでサーバー認証アプリを承認すると、そのアプリの承認は承認時点のアプリのスコープセットになります。 アプリの承認後にスコープを変更する場合、Enterprise環境に変更を反映するには、アプリを再承認する (管理者がアプリのスコープで変更を「承認」する) 必要があります。
上記のJSONデータのサンプルの場合
根本原因
ユーザーには、リクエストしたアクションを実行する権限がありません。 さらにサポートが必要な場合は、Box Supportでチケットを申請してください。
platform_swarm_kb