認証方法

TotalAgility は、次の認証方法をサポートしています。

ポスト ボディ内のシークレット

クライアント ID およびシークレットは、要求の本文で送信されます。要求は Fiddler を使用して検証されます。

POP3、IMAP、または MS グラフ タイプのインポート ソースに用の OAuth サーバーを構成する場合は、ポスト ボディ内のシークレット認証方式を使用することをお勧めします。

ベーシック認証を使用したシークレット

クライアント ID とシークレットは、エンコードされたテキストとしてヘッダーで送信されます。要求は Fiddler を使用して検証されます。

共有秘密鍵 JWT (JSON Web Token)

クレーム属性の値を構成します。これは OAuth 2.0 プロバイダで一般的に使用されるものであるため、TotalAgility には、HS256 署名アルゴリズムのサポートが組み込まれています。

  1. 以下の読み取り専用フィールドは、デフォルト値で使用できます。これらの値は、それぞれの認証付与内で事前構成されています。

    • 発行元: JWT の発行元であり、OAuth 2.0 クライアントのクライアント ID が含まれます。

    • [件名]: JWT のサブジェクト (ユーザー)。この値には、クライアント ID も含まれます。

    • オーディエンス: JWT の対象となる送信先 (認証サーバーのトークン エンドポイントの URL)。

    • JWT ID: 一意の識別子。

  2. 有効期限: JWT が期限切れになるまでの時間を定義します。(デフォルト: 60 分)

  3. 必要に応じて、クレームを追加します。

    1. [追加のクレーム] で、 をクリックします。

    2. 名前と値を入力します。

    3. [追加] をクリックします。

これらのフィールドは、秘密鍵 JWT メソッドでも使用できます。

秘密鍵 JWT

[秘密鍵 JWT] を選択すると、[証明書] を選択して [証明書のパスワード] を設定できます。ただし、設定を再度開いた場合には、証明書とパスワードは使用できません。クレーム属性の値を入力できます。これは OAuth プロバイダで一般的に使用されるものであるため、TotalAgility には、RS256 署名アルゴリズムのサポートが組み込まれています。

カスタム

TotalAgility には、一般的に使用される OAuth 2.0 認証方法のサポートが組み込まれています。ただし、同期ビジネス プロセス内に独自のカスタム トークン生成ロジックを記述することもできます。

サンプル プロセスを使用し、要件に合わせて変更するか、新しいプロセスを作成することができます。

TotalAgility には、サンプル .NET コード (OAuth Sample .Net Code.zip) が用意されています。このコードを使用することで、クライアント シークレット/クライアント アサーション/パスワードおよびその他のクライアントの詳細を使用して、さまざまな付与を行うトークンを生成できます。「サンプル コードの使用」を参照してください。

新しい同期マップの作成

新しい同期マップでトークンを生成するには、次の初期化変数と出力変数を指定する必要があります。

初期化変数

変数 ID 変数タイプ 認証コード付与プロセス リソース所有者のパスワード認証情報付与プロセス クライアント認証情報付与プロセス 説明
CLIENT_ID 文字列 適用可能 適用可能 適用可能 クライアントを識別するために使用される文字列。
CLIENT_SECRET 文字列 適用可能 適用可能 適用可能 クライアントが使用するシークレット文字列。
ACCESS_TOKEN_URL 文字列 適用可能 適用可能 適用可能 アクセス トークンを取得するための URL。「/token」を含まない URL を指定します。
SCOPE 文字列 適用可能 適用可能 適用可能 要求された権限を定義する範囲全体の文字列。
AUTHERIZATION_CODE 文字列 適用可能 該当なし 該当なし このパラメータは、クライアントが認証サーバーから受信した認証コードです。
REDIRECT_URI 文字列 適用可能 該当なし 該当なし 最初の認証リクエストにリダイレクト URI が含まれていた場合、サービスはトークン リクエスト内でもリダイレクト URI を要求する必要があります。トークン リクエスト内のリダイレクト URI は、認証コードの生成時に使用されたリダイレクト URI と完全に一致する必要があります。完全に一致していない場合、サービスはリクエストを拒否します。
OAuth サーバーによっては、トークン リクエスト内でリダイレクトの URI/範囲を明示的に回避しなければならない場合があります。
CODE_VERIFIER 文字列 適用可能 該当なし 該当なし アプリケーションは、トークンのコードを交換するよう求めるリクエストを行い、固定シークレットではなく、コード ベリファイアのみを送信します。これで、認証サーバーはコード ベリファイアをハッシュして、以前に保存したハッシュ値と比較できます。ハッシュ値が一致する場合、認証サーバーはトークンを返します。
POST_PARAMETERS ダイナミック複合変数 適用可能 適用可能 適用可能 アクセス トークンを取得するために渡す必要がある追加のポスト パラメータ。
QUERY_PARAMETERS ダイナミック複合変数 適用可能 適用可能 適用可能 アクセス トークンを取得するために渡す必要がある追加のクエリ パラメータ。
REFRESH_TOKEN 文字列 適用可能 適用可能 該当なし このパラメータが渡された場合、アクセス トークンは更新トークンを使用して生成されます。
USER_NAME 文字列 該当なし 適用可能 該当なし リソース所有者のユーザー名。これは TotalAgility データベースに保存されません。認証中または Designer に保存しているときのみ、カスタム マップで使用できます。
PASSWORD 文字列 該当なし 適用可能 該当なし リソース所有者のパスワード。これは TotalAgility データベースに保存されません。認証中または Designer に保存しているときのみ、カスタム マップで使用できます。

出力変数

変数 ID 変数タイプ 認証コード付与プロセス リソース所有者のパスワード認証情報付与プロセス クライアント認証情報付与プロセス 用途
ACCESS_TOKEN 文字列 適用可能 適用可能 適用可能 TotalAgility はアクセス トークンを使用して、必要なリソース情報を取得します。
ACCESS_TOKEN_EXPIRY_IN_SECONDS long 適用可能 適用可能 適用可能 トークンの有効期限が切れた場合。有効期限が切れると、トークンは更新トークンを使用して生成されます。
REFRESH_TOKEN 文字列 適用可能 適用可能 該当なし TotalAgility はカスタム マップに更新トークンを渡して、新しいアクセス トークンを取得します。

カスタム認証方法の画面から新しいプロセスを直接作成するには、次の手順を実行します。

  1. [プロセス] フィールドの横にある [新しいプロセスの作成] をクリックします。

    [新しいプロセスの作成] ダイアログ ボックスが表示されます。

  2. プロセスの [名前] を入力します。

  3. [OK] をクリックします。

セキュリティとパフォーマンス上の理由から、ジョブの実行後にトークンが保存されないように、プロセス レベルで履歴の記録オプションをオフにすることをお勧めします。

サンプル プロセスの使用

TotalAgility は、次のサンプル プロセスを提供します。

  • OAuth 認証付与のサンプル: クライアント シークレット、認証コード、およびその他のクライアントの詳細を使用して、Facebook に対して長期間有効なページ アクセス トークンを生成します。

  • OAuth クライアント認証情報付与のサンプル: 証明書およびその他のクライアントの詳細を使用して、OKTA クライアントのアクセス トークンを生成します。

  • OAuth リソース証明書パスワード付与のサンプル: ユーザー名とパスワード、およびその他のクライアントの詳細を使用して Azure AD トークンを生成します。

これらのビジネス プロセスは、\\Kofax\TotalAgility\Sample Processes\OAuth Samples\OAuth Sample Package.zip で入手できます。

オンプレミス マルチテナント環境の場合、ビジネス プロセスは \\Kofax\OnPremiseMultitenancyInstall\Sample Processes\OAuth Samples\OAuth Sample Package.zip で入手できます。

このパッケージをインポートすると、これらのサンプル プロセスをビジネス プロセスのシステム カテゴリで使用できるようになります。

サンプル コードの使用

.NET サンプル コードは、次の場所にある OAuth Sample .Net Code.zip に含まれています。\\Kofax\TotalAgility\Sample Processes\OAuth Samples\

このサンプル コードを使用すると、クライアント シークレット/クライアント アサーション/パスワードおよびその他のクライアントの詳細を使用して、さまざまな付与を行うトークンを生成できます。

サンプル コードを使用するには、Visual Studio 2017 以降と .NET Framework 4.8 が必要です。

TotalAgility はサンプル コードのメンテナンスを行わないため、ユーザーがメンテナンスを行い、サンプル コードに加えた変更を所有する必要があります。

  1. OAuth Sample .Net Code.zip をローカル フォルダに抽出します。OAuth Sample .Net Code フォルダには、Visual Studio ソリューション ファイルおよびコンパイル済み DLL のフォルダが含まれています。

  2. 「OAuth Samples .Net Code\OAuthCustomMapSamples.sln」ソリューションをロードします。

    \\OAuth Sample .Net Code\OAuthCustomMapSamples フォルダの内容は、次のとおりです。
    • AuthGrant フォルダ: OAuth コードとその他のクライアントの詳細を使用して Facebook ユーザー トークンを生成するためのコードが含まれています。また、有効期間が短いユーザー トークンを使用して、有効期間が長いユーザー トークンおよび有効期間が長いページ トークンを生成するコードも含まれています。

    • ClientCredentialGrant フォルダ: 証明書やその他の詳細を使用して OKTA アプリ トークンを生成するためのコードが含まれています。

    • ROPC フォルダ: ユーザー認証情報やその他の詳細を使用して Azure AD ユーザー トークンを生成するコードが含まれています。

  3. コードはリリース モードでコンパイルします。その他のすべての設定はそのままにしてください。

    「OAuth Samples .Net Code\OAuth Samples .Net Code\bin\Release」フォルダには、TotalAgility で使用できるコンパイル済みの「OAuthSamples.dll」が含まれています。