各種オブジェクトへのAPI呼び出しを作成する際に、応答で次のようなエラーが返されることがあります。
{"status":403,"code":"access_denied_insufficient_permissions"...}
このエラーはBoxが権限を確認する過程で発生します。APIを通じて実行されるすべてのアクションについてBoxは以下をチェックします。
1) アクセストークンを所有するユーザーの権限
2) アプリケーションの権限/スコープ
いずれかのチェックで権限不足と判断されると、上記のエラーが返されます。
環境
Box Platform - カスタムアプリケーションを通じたBoxへのAPI呼び出し
解決手順
ユーザーにタスクを実行する権限があることを確認します。最も簡単なチェック方法は、ウェブアプリから同じアクションを実行できるかやってみることです。以下に例を示します。
- 別のユーザーに「As-User」ヘッダーを使用しようとしている場合、管理コンソールで「Log in as this user (このユーザーとしてログイン)」オプションを使用可能か確認します。この例でよくある状況は、ユーザーに共同管理権限がないか、共同管理者が別の共同管理者の「As-User」として実行しようとしているか、共同管理者がプライマリ管理者の「As-User」として実行しているかです。
- リーガルホールドなどの高度な機能を使用する場合は、その機能へのアクセス権限を会社が所有している必要があります。
- ルートフォルダにはコラボレータを追加できません。
- 注: 共同管理者には他の共同管理者アカウントを管理する権限がありません。
アプリケーションに対して有効化されているスコープを確認し、対象タスクを実行する権限がアプリケーションにあるかどうかを確認します。確認箇所は2つあります。
- (標準認証およびサーバー認証) 開発者コンソールの対象アプリの [構成] ページ。
- (サーバー認証のみ) 管理コンソール-> [Business設定]/[Enterprise設定] -> [アプリ] -> [カスタムアプリケーション] -> [アプリ承認を表示] の会社のアプリ認証状況。
- 管理者が管理コンソールでServer Authアプリを承認すると、そのアプリの承認は承認時点のアプリのスコープセットになります。アプリの承認後にスコープを変更する場合、Enterprise環境に変更を反映するには、アプリを再承認する (管理者がアプリのスコープで変更を「承認」する) 必要があります。
以下に例を示します。
- ユーザー/エンドポイントへの呼び出しを作成する場合、「管理対象ユーザー」が有効になっている必要があります。
根本原因
ユーザーには、リクエストしたアクションを実行する権限がありません。さらにサポートが必要な場合は、Box Product Supportにチケットを申請してください。
platform_swarm_kb