前提条件
- Box開発者コンソールでサーバー認証 (クライアント資格情報許可使用) を使用するPlatformアプリケーション
- [構成] タブからアプリケーションのクライアントシークレットを表示およびコピーするために、Boxアカウントで2要素認証が有効になっていること
- Box管理コンソールでアプリケーションが承認されていること
クライアントシークレットは機密情報であり、保護する必要があります。アクセストークンの取得時にBoxがアプリケーションのIDを安全に確認するために使用されるため、クライアントシークレットを自由に配布するべきではありません。配布方法には、メール、公開フォーラム、コードリポジトリ、分散されたネイティブアプリケーション、クライアント側のコードなどがあります。さらにセキュリティメカニズムを追加する場合は、Boxの標準的なJWTアプリケーションを使用することをお勧めします。
利用方法
APIコールを実行してアクセストークンを取得する際は、リクエスト本文にクライアントIDとクライアントシークレットを含める必要があります。grant_typeをclient_credentialsに設定します。
アプリケーションのサービスアカウントとして認証する場合は、以下のようにします。
box_subject_typeをenterpriseに設定するbox_subject_idをEnterprise IDに設定する
box_subject_typeをuserに設定するbox_subject_idをユーザーIDに設定する- Box開発者コンソールで [アプリ + Enterpriseアクセス] および [ユーザーアクセストークンを生成する] を有効にする
box_subject_typeをuserに設定するbox_subject_idをユーザーIDに設定する- Box開発者コンソールで [ユーザーアクセストークンを生成する] を有効にする
一般的なエラー
Grant credentials are invalid (許可の資格情報が無効です)
認証中に、次のエラーが表示される場合があります。- 渡されたクライアントIDとクライアントシークレットが正しくないか、同じアプリケーションのものではない。
-
選択したアプリケーションアクセスに基づいて
box_subject_idを使用できない。
-
box_subject_typeをuserに設定して使用するには、[構成] タブの [高度な機能] セクションでユーザーアクセストークンを生成するようアプリケーションを構成する必要があります。
- アプリケーションがBox管理コンソールで承認されていない
