メインコンテンツへスキップ
Box公式SDKには、JWT認証のサポートが組み込まれています。 このガイドでは、Box SDKを使用したJWTによるユーザー認証について説明します。JWT認証はBox APIを直接操作するよう設計されており、ユーザーがアプリケーションを承認するためにBoxを介してリダイレクトする必要はありません。

概要

JWT承認を完了するには、以下の手順を完了する必要があります。
  1. 構成ファイルを読み取る
  2. SDKクライアントを初期化する
このフローが終了すると、アプリケーションには、アプリケーションの代わりにAPIコールを実行するために使用できるBox SDKクライアントが用意されます。
JWTを使用したデフォルトの認証方法は、もともとアプリケーションのサービスアカウントに関連付けられています。このトークンを使用して実行されるAPIコールはどれも、このアプリケーションから実行されているように見えますが、明示的なアクセス権がなければ他のユーザーのファイルやフォルダにはアクセスできません。

前提条件

開始する前に、以下の手順を完了しておく必要があります。
  • 開発者コンソール内でBoxアプリケーションを作成する
  • アプリケーション用に秘密キーの構成ファイルを作成してダウンロードし、config.jsonとして保存する
  • 社内で使用するためにBoxアプリケーションが承認されていることを確認する

1. JSON構成を読み取る

Boxアプリケーションを作成すると、アプリケーションの秘密キーとその他の詳細を含むconfig.jsonファイルも作成されます。以下に、その例を示します。
{
  "boxAppSettings": {
    "clientID": "abc...123",
    "clientSecret": "def...234",
    "appAuth": {
      "publicKeyID": "abcd1234",
      "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----\n....\n-----END ENCRYPTED PRIVATE KEY-----\n",
      "passphrase": "ghi...345"
    }
  },
  "enterpriseID": "1234567"
}

このオブジェクトをアプリケーションで使用するには、ファイルから読み取る必要があります。
var reader = new StreamReader("path/to/config.json");
var json = reader.ReadToEnd();
var config = BoxConfig.CreateFromJsonString(json);

JSONの解析プログラミング言語によっては、ファイルからJSONを読み取って解析する方法が複数ある場合があります。エラー処理など、さらに詳細な説明については、使用するプログラミング言語のガイドを参照してください。

2. SDKクライアントを初期化する

次の手順では、作成した構成を使用してBox SDKを構成し、アプリケーションとして接続するためにクライアントを初期化します。
var sdk = new BoxJWTAuth(config);
var token = sdk.AdminToken();
BoxClient client = sdk.AdminClient(token);

サービスアカウントこの時点では、アプリケーションは、管理対象ユーザーまたはApp Userとしてではなく、アプリケーションユーザーとして認証されます。各種ユーザーの詳細については、ユーザータイプに関するガイドをご覧ください。

まとめ

以下の手順に従うことで、アプリケーションはBox公式SDKのいずれかにより、JWTを使用したアプリケーションの承認を実行できるようになりました。
  1. 構成ファイルを読み取る
  2. SDKクライアントを初期化する
このクライアントの使用方法を確認するには、APIコールの実行に関するガイドをご覧ください。

SDKとJSONウェブトークンの使用

各SDKのJWTの詳細については、以下を参照してください。