APIアプリケーションのCustom validation
Custom validationは、Workato発行のキーを要求する代わりに、受信したJSON Web Token(JWT)を定義したクレームルールとスコープルールに照らして検証する、API platformアプリケーションの認証情報タイプです。 コンシューマーが独自のアイデンティティプロバイダー(IdP)で認証し、Workato固有のクレームをトークンに埋め込まずにそのトークンを受け入れる必要がある場合は、Custom validationを使用します。
クライアント認証方法が必要
Custom validationは、認証方法がJSON Web Token(JWT)またはOpenID Connectであるクライアント上のアプリケーションでのみ使用できます。 クライアントがOAuth 2.0などの別の認証方法を使用している場合、Custom validationオプションは無効になります。
外部OIDC IDプロバイダーをAPI platformに接続する場合、通常は、IdPが発行するJWTに、アプリケーションのWorkato発行のAPIキーを含むカスタムクレームを埋め込みます。 これにより、各トークンが特定のアプリケーションに関連付けられ、引き続き完全にサポートされます。 クレームを追加するには、IdPのトークンクレーム設定への管理者アクセス権が必要です。
Custom validationは、IdPのトークンを変更できない、または変更したくないコンシューマー向けの代替手段です。 埋め込みクレームによってアプリケーションを識別する代わりに、Workatoは、アプリケーションで直接定義したクレームルールと、必要に応じてスコープルールに照らしてトークンを検証します。 IdPは、Workato固有の設定がない標準トークンを発行します。
一部のコンシューマーは、JWTクレームではなくHTTPヘッダーを通じてAPIキーを渡します。 これはサポートされている代替手段ではありません。
サポートされていない回避策
異なるアプリケーションが同じIdP発行者を共有できるため、ヘッダーベースのアプローチでは呼び出し元が任意のアプリケーションの権限を要求でき、権限昇格リスクが生じます。
アプリケーション認証情報タイプ
アプリケーションを作成するときに、2つの認証情報タイプのいずれかを選択します。
| 認証情報タイプ | 説明 |
|---|---|
| APIキー | Workatoが静的キーを生成します。 コンシューマーは各リクエストでヘッダーとしてそれを含めます。 |
| カスタム検証 | クレームルールとスコープルールを使用してJWTトークンを検証します。 コンシューマーは独自のアイデンティティプロバイダーからトークンを取得します。 Workato発行のキーは必要ありません。 |
アプリケーションの作成後に、その認証情報タイプを変更することはできません。
発行者URL
アプリケーションが受け入れるすべてのトークンは、信頼できる発行者からのものである必要があります。 Issuer URLsフィールドでは、Workatoが受け入れる発行者値を定義します。 トークンのissクレームは、設定したURLのいずれかと一致する必要があります。
Workatoは、クライアントレベルで設定された発行者値をIssuer URLsに事前入力します。 特定のアプリケーションについてこれらの値を上書きでき、複数の発行者URLを入力することもできます。
クレームルールとは異なり、発行者は常に特定の値に照らして検証されます。 issクレームが存在することのみを確認するように発行者を設定することはできません。
クレーム検証
クレーム検証では、受信トークンが満たす必要がある追加のクレームルールを定義します。 トークンは、発行者URLと一致することに加えて、定義したすべてのルールを満たす場合にのみ受け入れられます。
Workatoは、クライアントレベルで設定されたクレームをクレーム検証テーブルに事前入力します。 特定のアプリケーションについてこれらの値を上書きできます。
各クレームルールには3つの部分があります。
| 部分 | 説明 |
|---|---|
| クレーム | 確認するJWTクレームの名前。例:iss、aud、またはsub。 |
| ルール | クレームがトークン内に存在することを要求するにはexists、クレームが指定した値のいずれかと一致することを要求するにはone ofを使用します。 |
| 値 | Ruleがone ofの場合に必須です。 クレームに対して受け入れる値のカンマ区切りリスト。 Ruleがexistsの場合は使用されません。 |
たとえば、次のクレームルールでは、トークンに特定のクライアントIDとサブジェクトクレームが含まれていることが必要です。
| クレーム | ルール | 値 |
|---|---|---|
client_id | 次のいずれか | client-web-001 |
sub | 存在する | なし |
クレームルールの制限
アプリケーションごとに最大10件のクレームルールを追加できます。
スコープ検証
スコープ検証では、すべてのクレームルールを満たすことに加えて、受信トークンに含める必要があるスコープ値を定義します。
スコープ検証には2つの設定があります。
- Don't validate:スコープチェックをスキップします。 クレームルールのみが適用されます。
- Validate:トークンに必要なすべてのスコープ値が含まれていることを確認します。
Validateを選択した場合は、1つ以上のScope valuesをカンマで区切って入力します。 Workatoは、scopeクレームとscpクレームの両方で一致を確認します。
スコープ値の制限
アプリケーションごとに最大10件のスコープ値を追加できます。
Custom validationを使用したアプリケーションの作成
クレームルールとスコープルールでJWTを検証するアプリケーションを作成するには、次の手順を完了します。
前提条件
次のタスクを完了していることを確認します。
- 認証方法としてJSON Web Token(JWT)またはOpenID Connectを使用してクライアントを作成します
- コンシューマーのアイデンティティプロバイダーが発行する発行者URLとトークンクレームを確認します
プラットフォーム > API platform > Clientsに移動し、アプリケーションを作成する予定のクライアントを選択します。
Applicationsをクリックします。
Applicationsタブ
+ Create applicationをクリックします。
Application nameを入力します。
Credential typeでCustom validationを選択します。
Custom validation認証情報タイプの選択
次へをクリックします。
1つ以上のIssuer URLsを入力します。 トークンのissクレームは、入力したURLのいずれかと一致する必要があります。 Workatoは、クライアントレベルで設定された発行者値をこのフィールドに事前入力し、このアプリケーションについてそれらを上書きできます。
必須にする各クレームについて、Claim validationでAdd ruleをクリックし、ルールのClaim、Rule、およびValuesを設定します。
たとえば、トークンに特定のクライアントIDとサブジェクトクレームが含まれていることを要求するには、次のルールを追加します。
| クレーム | ルール | 値 |
|---|---|---|
client_id | 次のいずれか | client-web-001 |
sub | 存在する | なし |
クレーム検証ルールの設定
特定のスコープを要求するには、Scope validationでValidateを選択し、カンマで区切ったScope valuesを入力します。 スコープチェックをスキップするには、Don't validateを選択したままにします。
たとえば、トークンにopenidスコープとemailスコープを含めることを要求するには、Scope valuesにopenid, emailを入力します。
次へをクリックします。
任意です。 Allowed IPsを入力します。 定義した場合、これらのIPアドレスから開始されたAPIリクエストのみが許可されます。 複数のIPアドレスを追加するには、カンマで区切るか、106.226.100.3/20などの範囲を定義します。
IPアクセスルールの設定
任意です。 Blocked IPsを入力します。 ブロックされたIPは許可されたIPより優先されます。
Create applicationをクリックします。
完了をクリックします。 アプリケーションは直ちにアクティブになり、設定したルールに照らして受信トークンを検証します。
キーは生成されません
Custom validation認証情報タイプのアプリケーションは、Workato発行のキーを受け取りません。 コンシューマーは、独自のアイデンティティプロバイダーによって発行されたトークンを使用して認証します。
アプリケーションの表示と管理
クライアントのApplicationsタブには、そのクライアント用に作成されたすべてのアプリケーションが一覧表示され、認証情報タイプ、設定済みのルールまたはキー、およびアプリケーションがアクティブかどうかが表示されます。
Custom validation認証情報タイプのアプリケーションの場合、アプリケーションカードには、アプリケーション名の横にCustomバッジと次の情報が表示されます。
- Claim validation:設定された各クレームルール。
claim: rule "value"として表示されます。 例:iss: one of "https://auth.acmecorp.com"。 - Scope validation:スコープ検証が有効な場合の設定済みスコープ値
- Active since:アプリケーションが作成された日付
- アプリケーションを有効または無効にするActiveトグル
アプリケーションの横にある...(省略記号)をクリックして、名前変更、編集、または削除を行います。 Custom validationアプリケーションには、Edit configurationオプションもあります。
アプリケーションの管理
制限事項
Custom validationには次の制限があります。
- Custom validationは、JWTまたはOpenID Connect認証方法を使用するクライアント上のアプリケーションでのみ使用できます。 OAuth 2.0またはAuth tokenを使用するクライアントでは使用できません。
- アプリケーションごとに最大10件のクレームルールがサポートされます。
- アプリケーションごとに最大10件のスコープ値がサポートされます。
最終更新日: