BoxWorks 2024でコンテンツとAIの可能性について紹介します。

詳細を表示

SDKを使用したJWT

ガイド 認証 JWT認証 SDKを使用したJWT

SDKを使用したJWT

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ファイルも作成されます。以下に、その例を示します。

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"
}

このオブジェクトをアプリケーションで使用するには、ファイルから読み取る必要があります。

.Net
var reader = new StreamReader("path/to/config.json");
var json = reader.ReadToEnd();
var config = BoxConfig.CreateFromJsonString(json);

Java
Reader reader = new FileReader("path/to/config.json");
BoxConfig config = BoxConfig.readFrom(reader);

Python
from boxsdk import JWTAuth

config = JWTAuth.from_settings_file('path/to/config.json')

Node
var config = require("path/to/config.json");

JSONの解析

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

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

次の手順では、作成した構成を使用してBox SDKを構成し、アプリケーションとして接続するためにクライアントを初期化します。

.Net
var sdk = new BoxJWTAuth(config);
var token = sdk.AdminToken();
BoxClient client = sdk.AdminClient(token);

Java
BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(config);

Python
client = Client(config)

Node
var sdk = BoxSDK.getPreconfiguredInstance(config);
var client = sdk.getAppAuthClient("enterprise");

サービスアカウント

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

まとめ

以下の手順に従うことで、アプリケーションはBox公式SDKのいずれかにより、JWTを使用したアプリケーションの承認を実行できるようになりました。

  1. 構成ファイルを読み取る
  2. SDKクライアントを初期化する

このクライアントの使用方法を確認するには、APIコールの実行に関するガイドをご覧ください。

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

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