機械翻訳について

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 値の説明 データ型 必須 推奨事項

signature

Actual Signature

Example:

${connectivity::base64Decode(.request.token)}

署名文字列を抽出するJQ式またはフロー。

複数のシグネチャ出力の場合は、すべてのシグネチャに対してArrayNodeである必要があります。

String

はい

"hidden":true

signatureString

Signing String

Example:

${.request.body}

署名文字列を抽出するJQ式またはフロー。

複数のシグネチャ出力の場合は、すべてのシグネチャ文字列に対してArrayNodeである必要があります。

String

はい

"hidden":true

signatureAlgorithm

Signing Algorithm

Example: SHA256withRSA

テキスト 次のいずれかの値を入力します。

  • SHA256withRSA: SHA-256によるRSAシグネチャ

  • SHA384withRSA: SHA-384によるRSAシグネチャ

  • SHA512withRSA: SHA-512によるRSAシグネチャ

  • SHA256withRSASSA_PSS: SHA-256によるRSASSA-PSSシグネチャ

  • SHA256withRSAandMGF1: MGF1-SHA256を使用したRSASSA-PSSシグネチャ

  • SHA384withRSASSA_PSS: SHA-384によるRSASSA-PSSシグネチャ

  • SHA384withRSAandMGF1: MGF1-SHA384を使用したRSASSA-PSSシグネチャ

  • SHA384withRSASSA_PSS: SHA-512によるRSASSA-PSSシグネチャ

  • SHA256withRSAandMGF1: MGF1-SHA512を使用したRSASSA-PSSシグネチャ

選択

はい

"hidden":true

signatureKey

Signature key alias.

Example: orakey

次のいずれかの値を入力します。

URL: X.509証明書を返すHTTPS URL。

別名: Oracle Integrationにアップロードされたデジタル・シグネチャ証明書の別名。 デジタル・シグネチャ証明書をOracle Integrationにアップロードする方法の詳細は、「外部サービスに接続するための証明書のアップロード」を参照してください。

JQ/Flow: RSA証明書の内容のJSON配列を返すJQまたはフロー。

複数のシグネチャが存在する場合は、それらをカンマで区切るか、すべてのシグネチャに1つのアルゴリズムを使用できます。

String

はい

該当なし

timestampValidator

Timestamp Validation Strategy

Example: ${.request.headers.ts < now()}

オプション。メッセージのタイムスタンプまたは有効期限を検証するJQ式またはフロー。

String

いいえ

"hidden":false

clientIdentifier

client Identifier

Example:

741abdd2ca2ddddd055670cfa856bf

このIDは、シグネチャの検証後に認証するために使用されます。

IDは、Oracle Integrationのアイデンティティ・ドメイン内の有効なクライアント・アプリケーションに属している必要があります。

ServiceInvokerアプリケーション・ロールが割り当てられている必要があります。

String

はい

"hidden":false

サンプル・コード: デジタル・シグネチャ検証(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": ""
           },
            
       ]
      }
   ]