JWT フローを使用した組織のカスタム OAuth 2 アプリケーションの設定と使用
Workfront と統合し、クライアントアプリがユーザーの代わりに Workfront と通信できるようにするには、次の操作が必要です。
- OAuth2 アプリケーションを作成
- 公開鍵証明書の作成
- JSON web トークン(JWT)の作成
OAuth2 アプリケーションを作成
OAuth2 アプリケーションの作成手順については、Workfront 統合用の OAuth2 アプリケーションの作成のサーバー認証(JWT フロー)を使用した OAuth2 アプリケーションの作成を参照してください。
公開鍵証明書の作成
JWT をアクセスリクエストに含めるには、署名し Base 64 でエンコードする必要があります。JWT ライブラリには、これらのタスクを実行する関数が用意されています。
トークンは、デジタル署名証明書の秘密鍵を使用して署名する必要があります。その場合は、関連付けられている任意の証明書の秘密鍵を使用して、JWT に署名することができます。
使用されるアルゴリズムは、RS256(SHA-256 を使用した RSA 署名)です。これは非対称アルゴリズムで、公開鍵と秘密鍵のペアを使用します。ID プロバイダーは署名の生成に使用される秘密(プライベート)鍵を持ち、JWT のコンシューマーは署名を検証するための公開鍵を取得します。
公開鍵を生成するには、次のうちの いずれか一方 を行います。
-
MacOS/Linux ターミナルを開いて次のコマンドを実行したあと、Workfront の OAuth2 アプリケーション設定で「公開鍵を追加」ボタンを使用して、
certificate_pub.crt
をアップロードします。code language-none openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout private.key -out certificate_pub.crt
-
Workfront での OAuth2 アプリケーション設定で「公開鍵 / 秘密鍵のペアを生成」ボタンを使用して、RSA を生成します。
JSON web トークンの作成
サービスアカウント認証用の JSON web トークンは、特定の要求のセットを必要とします。また、有効なデジタル署名証明書を使用して署名する必要があります。JWT の作成には、公開されているライブラリまたはツールの 1 つを使用することをお勧めします。
JWT トークンの設定時に必要となる可能性のあるフィールドに関する情報を次の表に示します。
アクセストークンを取得するための JWT の交換
-
以下に POST リクエストを送信します。
code language-none https://yourdomain.my.workfront.com/integrations/oauth2/api/v1/jwt/exchange
-
リクエストの本文には、クライアント ID、クライアントシークレットおよび JWT を含む URL エンコードされたパラメーターが含まれている必要があります。
code language-none client_id={client_id_value}&client_secret={client_secret_value}&jwt_token={base64_encoded_JWT}