RSAシグネチャ検証
Oracle Integrationフローを呼び出すための受信リクエストのRSAベースのデジタル・シグネチャの検証をサポートするには、RSA_SIGNATURE_VALIDATION管理対象セキュリティ・ポリシーを使用します。 接続定義に必要なセキュリティ・ポリシーをカスタマイズできます。
概要
RSAシグネチャ検証では、受信リクエストのRSAシグネチャ部分を検証します。 このポリシーは、ポリシーに定義されているHMAC検証関数(JQ)に基づいて、HTTPクライアントによって送信されるシグネチャを検証します。
このセキュリティ・ポリシーは、clientIdentifierに指定されているクライアントID値をアサートし、clientIDがServiceInvokerロールに関連付けられていることを確認します。
RSAシグネチャ検証ポリシーをドキュメントに追加するには、使用可能な認証スキーム・テンプレートを使用します。 「新規接続定義の実装」を参照してください。
ノート:
このポリシーを使用して、単一のリクエストで複数のシグネチャを検証できます。セキュリティ・プロパティ
このセキュリティ・ポリシーを使用する接続定義は、securityPropertiesセクションで次のプロパティを定義します。 「接続プロパティおよびサンプル・コード」を参照してください。
name, displayName, shortDescription列およびdescription列の値は、アダプタ定義ドキュメントにセキュリティ・ポリシーを挿入したときに表示されるデフォルト値を示します。 これらの値は、必要に応じて更新できます。
| name | displayName | shortDescription | 値の説明 | データ型 | 必須 | 推奨事項 |
|---|---|---|---|---|---|---|
|
|
|
|
署名文字列を抽出するJQ式またはフロー。 複数のシグネチャ出力の場合は、すべてのシグネチャに対してArrayNodeである必要があります。 |
String |
はい |
|
|
|
|
|
署名文字列を抽出するJQ式またはフロー。 複数のシグネチャ出力の場合は、すべてのシグネチャ文字列に対してArrayNodeである必要があります。 |
String |
はい |
|
|
|
|
|
テキスト 次のいずれかの値を入力します。
|
選択 |
はい |
|
|
|
|
|
次のいずれかの値を入力します。 URL: X.509証明書を返すHTTPS URL。 別名: Oracle Integrationにアップロードされたデジタル・シグネチャ証明書の別名。 デジタル・シグネチャ証明書をOracle Integrationにアップロードする方法の詳細は、「外部サービスに接続するための証明書のアップロード」を参照してください。 JQ/Flow: RSA証明書の内容のJSON配列を返すJQまたはフロー。 複数のシグネチャが存在する場合は、それらをカンマで区切るか、すべてのシグネチャに1つのアルゴリズムを使用できます。 |
String |
はい |
該当なし |
|
|
|
|
オプション。メッセージのタイムスタンプまたは有効期限を検証するJQ式またはフロー。 |
String |
いいえ |
|
|
|
|
|
このIDは、シグネチャの検証後に認証するために使用されます。 IDは、Oracle Integrationのアイデンティティ・ドメイン内の有効なクライアント・アプリケーションに属している必要があります。
|
String |
はい |
|
サンプル・コード: デジタル・シグネチャ検証(RSA)
"securityPolicies": [
{
"type": "managed",
"policy": "RSA_SIGNATURE_VALIDATION",
"description": "Validates RSA Signature",
"displayName": "RSA SIGNATURE VALIDATION",
"scope": "TRIGGER",
"securityProperties": [
{
"name": "signatureString",
"displayName": "Signature Statement",
"hidden": true,
"required": true,
"default": "${.request.body)}"
},
{
"name": "signature",
"displayName": "Signature Statement",
"hidden": true,
"required": true,
"default": "${connectivity::base64URLDecode(.request.query.signature)}"
},
{
"name": "signatureAlgorithm",
"displayName": "Request Signature Location",
"hidden": true,
"required": true,
"default": "SHA256withRSA"
},
{
"name": "signatureKey",
"displayName": "Certificate Alias",
"hidden": false,
"required": true
},
{
"name": "timestampValidator",
"displayName": "Request Signature Location",
"hidden": true,
"required": true,
"default": ""
},
]
}
]