API Gateway は、外部システムと Evolve アプリケーションの中間層です。サード パーティ システムがアクセスする公開された API のセキュリティを管理します。たとえば、サード パーティのシステムは、プロセス拡張 API を呼び出すことでフォーム プロセスを開始できます。この呼び出しを正常に行うには、サード パーティ システムが API Gateway のセキュリティ要件を満たす必要があります。
API Gateway のセキュリティの詳細
API Gateway は、アプリケーションにサードパーティのクライアントを登録するためのオプションを提供します。管理サイトから、[設定] → [認証] → [サード パーティ クライアント] → [クライアントの登録] に移動して、新しいクライアントを登録できます。API Gateway は、クライアント シークレット、セキュア トークン、および証明書の 3 つのセキュリティ オプションをサポートしています。
Winshuttle は、サード パーティ システムで使用される優先オプションとしてセキュア トークン セキュリティ オプションを推奨しています。
クライアント シークレット
これは http ヘッダーのセキュリティ オプションです。新しいクライアントを登録するには、ユーザーは [クライアントの登録] をクリックし、クライアント名を入力して 、[セキュリティの種類] ドロップ ダウンから [クライアント シークレット] を選択する必要があります。新しいクライアントを登録すると、アプリケーションはクライアント ID とシークレット コードを生成します。シークレット コードをコピーするには、任意のクライアントを選択し、[表示] → [シークレットの表示] をクリックします。サード パーティ アプリケーションは、登録されたクライアント ID とシークレット コードを HTTP リクエスト ヘッダーで次のように送信する必要があります。
-
リクエスト ヘッダー名: 「c1」には、有効な登録済みクライアント ID が必要です。
-
リクエスト ヘッダー名: 「ck」にはシークレット コードが必要です。
セキュア トークン
これは JWT トークン セキュリティ オプションです。新しいクライアントを登録するには、ユーザーは [クライアントの登録] をクリックし、クライアント名を入力して 、[セキュリティの種類] ドロップ ダウンから [セキュア トークン] を選択する必要があります。新しいクライアントを登録すると、アプリケーションはクライアント ID とシークレット コードを生成します。シークレット コードをコピーするには、クライアントを選択し、[表示] → [シークレットの表示] をクリックします。サード パーティのクライアントは、JWT トークンを作成し、シークレット コードで署名する必要があります。この署名された JWT トークンは、API リクエストで送信する必要があります。API には以下のリクエスト ヘッダーが必要です。
-
リクエスト ヘッダー: 名前: 「c1」には、有効な登録済みクライアント ID が必要です
-
リクエスト ヘッダー: 名前: 「ck」には JWT トークンが必要です。
JWT トークンには以下の詳細が必要です :
-
トークンにはクレーム ClientID が必要であり、登録済みのクライアント ID (クライアントの登録時に表示されるクライアント ID) が必要です。リクエスト ヘッダー「c1」の値と同じである必要があります。
-
トークンにはクレーム ClientName が必要であり、登録済みのクライアント名 (クライアントの登録時に提供されるクライアント名) が必要です。
-
トークンのデフォルトの有効期限は、トークンの発行時刻から 5 分を超えてはなりません。ユーザーがこの時間を延長したい場合は、キーをシステム → インフラストラクチャー → 詳細設定に追加できます。カテゴリ: システム、構成キー: ExtAPITokenExpiryMinutes そして値は分単位の時間である必要があります。
証明書
これは、サード パーティ アプリケーションと Evolve サーバーの両方が証明書を共有し、この証明書が呼び出しの認証に使用される証明書ベースのセキュリティです。これは相互証明書認証とも呼ばれ、Evolve が HTTPS で設定されている場合にのみサポートされます。新しいクライアントを登録するには、ユーザーは [クライアントの登録] をクリックし、クライアント名を入力して 、[セキュリティの種類] ドロップ ダウンから [証明書] を選択する必要があります。新しいクライアントを登録すると、アプリケーションはクライアント IDを生成します。生成されたクライアント ID は、クライアント証明書とともに API 呼び出しを行うために使用されます。Evolve アプリケーションは、以下の詳細に従って、証明書ベースの認証を有効にするように構成する必要があります。
-
ルート CA 証明書とクライアント証明書が必要です。クライアント証明書は、ルート CA 証明書によって発行される必要があります。
-
Evolve サーバーのローカル マシンの信頼されたルート認証局の場所にルート証明書をインストールします。
-
クライアント マシンにクライアント証明書をインストールし、プロセス拡張 API を呼び出している間にこのクライアント証明書を送信します。
ユーザーはクライアントのマシン名を検証のチェックをオン/オフにできます。オンにした場合、クライアントの証明書名はクライアントのマシン名と同じである必要があります。
証明書認証で起動しているときに外部 API でエラー「RequestEntityTooLarge」を解決するには:
-
[デフォルトの Web サイト] でサイトを選択します。
-
構成エディターを選択します。
-
[セクション] ドロップダウンで、「system.webServer/serverRuntime」を選択します。
-
「uploadReadAheadSize」には、1048576 バイトなどのより高い値を入力します。デフォルトは 49152 バイトです。