はじめに
WorkivaのAPIで使用されているような、期限切れの認証トークンを使用して複数のAPIコールを行うチェーンを使用する場合、すべてのコールが開始される前にトークンが失効するリスクがあります。この場合、残りのAPIコールはすべて失敗します。すべてのAPIコールの前に再認証することで、この問題を防ぐことができますが、チェーンに追加のオーバーヘッドが追加されます。
このガイドでは、Refresh OAuth Tokens Dynamically テンプレートの実装方法について説明します。このテンプレートは、有効期限と時間を持つトークンによる認証が必要なAPIコールを行うためにHTTPコネクターを使用するチェーンを対象としています。Workiva API用に構築されていますが、同様の認証方法を使用する他のAPIにも適応可能です。
チェーンには、トークンの有効期限が近づいたときに自動的に更新する仕組みが含まれています。チェーンは、既存のトークンの有効期限から 2 分(この値は調整可能)を減算してバッファとし、現在の時間と比較します。現在時刻が調整された有効期限より遅い場合、チェーンは再認証プロセスをトリガーして新規トークンを生成し、チェーンはそれを出力します。トークンがまだ有効な場合は、チェーンは再認証を省略し、 単純に既存のトークンを出力します。
メモ:もしトークンがこのチェーンに渡されなければ、自動的に認証プロセスを経てトークンが生成されます。
前提条件
チェーン
ワークスペースでは、以下のコネクターを有効にして構成する必要があります:
このテンプレートは、Workiva API で使用するために設計された、以下のワークスペース変数 を含んでいます:
- wsv_platform (ワークスペースがあるアプリの場所。米国では "app"、EU/EMEAでは "eu"、APACでは "apac")
- wsv_Client ID (API グラントのクライアント ID)
- wsv_Client Secret (API グラントの秘密)
チェーンの展開
Refresh OAuth Tokens Dynamically" チェーンテンプレートは、テンプレート画面の Workiva チェーンセクションにあります。
検索方法はこうだ:
- チェーンビルダーで、テンプレートタブに移動
- 上部のメニューからWorkiva チェーン を選択する。
- 右上の Refresh OAuth Tokens Dynamically Chain Template を検索し、テンプレートを開きます。
- テンプレートを見つけたら、新規チェーン をクリックし、ワークスペースに配置する。
- ワークスペースとAPI用にテンプレートを構成します。
- チェーンの構成が完了し、変更せずにそのまま使用したい場合は、チェーンを更新することを忘れないでください。
メモ: テンプレートからチェーンを作成する詳細な手順については、Create and manage chains の記事を参照してください。
テンプレートの構成
このテンプレートは、Run Chain コマンドを使って既存のチェーンに追加することができ、Workiva API の追加修正なしで動作します。実行チェーン」イベントコマンドの使い方はこちらをご覧ください。
このチェーンの使用例としては、イテレーションを使用する既存のコマンドグループ内が考えられます。このチェーンは "Run Chain "イベントコマンドから実行することができます。"Run Chain "イベントコマンドはグループ内に独自のブランチを持ち、このチェーンからのチェーン出力でダイナミックチェーン変数 を設定します。
Run Chain "コマンドの中で、ダイナミック・チェーン変数を使って、常に最新のトークンがチェックされるようにすることができます。
次に、"Run Chain "コマンドの出力で同じダイナミックチェーン変数を更新する必要があります。
その後、同じダイナミックチェーン変数をHTTPリクエストコマンドで使用することができます。
バッファ時間の更新
デフォルトでは、このテンプレートはタイミングの問題を避けるために、既存のトークンの有効期限に2分のバッファ時間を追加します。これは「有効期限時間が閉じているかチェックする」条件コマンドで変更できます。
このコマンドを編集したら、条件の最初の「Advanced Query - convert epoch timestamp - timestamp」変数をダブルクリックします。
その後、お好みで量の値を調整できます。