JWT フローを使用した組織のカスタム OAuth 2 アプリケーションの設定と使用

Workfront と統合し、クライアントアプリがユーザーの代わりに Workfront と通信できるようにするには、次の操作が必要です。

  • OAuth2 アプリケーションを作成
  • 公開鍵証明書の作成
  • JSON web トークン(JWT)の作成

OAuth2 アプリケーションを作成

OAuth2 アプリケーションの作成手順については、Workfront 統合用の OAuth2 アプリケーションの作成サーバー認証(JWT フロー)を使用した OAuth2 アプリケーションの作成を参照してください。

NOTE
一度に最大 10 個の 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 トークンの設定時に必要となる可能性のあるフィールドに関する情報を次の表に示します。

exp

必須。有効期限パラメーターは、1970年1月1日GMTからの絶対時間を測定する必要なパラメーターです。有効期限が問題発生時よりも後であることを確認する必要があります。この時間が経過すると、JWTは無効になります。

メモ:アクセストークンと交換された後すぐに期限切れになるように、有効期間が非常に短いトークン(数分)を使用することをお勧めします。 新しいアクセストークンが必要になるたびに、1 つの JWT が署名され、交換されます。 これは、より安全なアプローチになります。 必要に応じてアクセストークンを取得するために再利用される、有効期間の長いトークンはお勧めしません。

iss
必須。 発行元は、OAuth2 アプリの詳細から得られる顧客 ID です。
sub
必須。 サブジェクトは、設定時に公開鍵を作成したユーザー ID です。

アクセストークンを取得するための JWT の交換

  1. 以下に POST リクエストを送信します。

    code language-none
    https://yourdomain.my.workfront.com/integrations/oauth2/api/v1/jwt/exchange
    
  2. リクエストの本文には、クライアント ID、クライアントシークレットおよび JWT を含む URL エンコードされたパラメーターが含まれている必要があります。

    code language-none
    client_id={client_id_value}&client_secret={client_secret_value}&jwt_token={base64_encoded_JWT}
    
recommendation-more-help
workfront-help-quicksilver