Box公式SDKには、JWT認証のサポートが組み込まれています。
このガイドでは、Box SDKを使用したJWTによるユーザー認証について説明します。JWT認証はBox APIを直接操作するよう設計されており、ユーザーがアプリケーションを承認するためにBoxを介してリダイレクトする必要はありません。
JWT承認を完了するには、以下の手順を完了する必要があります。
- 構成ファイルを読み取る
- 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を使用したアプリケーションの承認を実行できるようになりました。
- 構成ファイルを読み取る
- SDKクライアントを初期化する
このクライアントの使用方法を確認するには、APIコールの実行に関するガイドをご覧ください。SDKとJSONウェブトークンの使用
各SDKのJWTの詳細については、以下を参照してください。