機械翻訳について

JWT検証

Oracle Integrationフローを呼び出すための受信リクエストに存在するJWTの検証をサポートするには、JWT_VALIDATION管理対象セキュリティ・ポリシーを使用します。 接続定義に必要なセキュリティ・ポリシーをカスタマイズできます。

概要

ポリシーは、JWTの請求およびシグネチャを検証し、ユーザーをOracle Cloud Infrastructure Identity and Access Management (IAM)に対してアサートします。 多くのwebフック・パブリッシャ・アプリケーションは、シグネチャ付きのJWTトークンを送信します。 サードパーティ・プロバイダがトークンを発行します。

Oracleは、IAMを使用して、統合を起動するリクエストを認証します。 ポリシーは、受信JWTトークンを開き、トークンからJWTクレームを抽出し、JWTクレームからユーザーを抽出し、ユーザーがIAMに存在し、ServiceInvokerロールを持っているかどうかを判断します。 ユーザーが有効で承認されている場合、アクセスが許可されます。

ドキュメントにJWT検証ポリシーを追加するには、使用可能な認証スキーム・テンプレートを使用します。 「新規接続定義の実装」を参照してください。

セキュリティ・プロパティ

このセキュリティ・ポリシーを使用する接続定義は、securityPropertiesセクションで次のプロパティを定義します。 「接続プロパティおよびサンプル・コード」を参照してください。

name, displayName, shortDescription列およびdescription列の値は、アダプタ定義ドキュメントにセキュリティ・ポリシーを挿入したときに表示されるデフォルト値を示します。 これらの値は、必要に応じて更新できます。

name displayName shortDescription description データ型 必須 推奨事項

jwtToken

JWT Token

Example:

${.request.headers.authorization}

JQ Expression or Flow to extract Signing String.

String

はい

"hidden":true

signatureKey

JWK URL

Example:

http:://host_port/context/jwk

Signature key alias or shared secret or JWK location or JQ/flow that returns JSON array with first entry as RSA certificate contents.

Text/JQ/Flow

String

はい

該当なし

subjectClaim

Subject claim Override.

Example: user

Optional, Tex or JQ. Output is claim name. Default "sub".

String

いいえ

"hidden":true

customClaimsValidation

Custom Claims Validation

Example: ${{"scope":"write"}}

Optional. JQ or flow to validate additional claims. Output is JsonNode with claim name and expected value.

String

いいえ

"hidden":true

サンプル・コード: JWT検証

次のサンプル・コードは、JWT検証の構成を示しています。 このコード・サンプルについては、次の点に注意してください:

  • セキュリティ・ポリシーは、認可ヘッダーからJWTトークンを抽出: .request.headers.authorization|split(" ")|.[1]

  • セキュリティ・ポリシーは、signatureKeyプロパティからシグネチャ・キーを取得します。

    このキーは、JWT発行者の別名JWK URL ("https://www.demosvc.com/oauth2/v3/certs"など)に解決されます

  • ポリシーでは、標準のJWTクレームのみが検証され、カスタム・クレームは検証されません。

  • このポリシーでは、オーバーライドなしでデフォルトのサブジェクト・クレームが使用されます。

{
 "connection": {
     
    "securityPolicies": [
       {
            "type": "managed",
            "policy": "JWT_VALIDATION",
            "scope": "TRIGGER", 
            "securityProperties": [
                {
                    "name": "jwtToken",
                    "displayName": "JWT Token",
                    "hidden": true,
                    "required": true,
                    "default": "${.request.headers.authorization|split(\" \")|.[1]}"
                },
                {
                    "name": "signatureKey",
                    "displayName": "JWK URL",
                    "hidden": true,
                    "required": true,
                    "default": "https://www.demosvc.com/oauth2/v3/certs"
                },
                 {
                    "name": "subjectClaim",
                    "displayName": "Subject claim Override",
                    "hidden": true,
                    "required": false,
                    "default": ""
                },
                {
                    "name": "customClaimsValidation",
                    "displayName": "Custom Claims Validation",
                    "hidden": true,
                    "required": false,
                    "default": ""
                }
            ]
        }
    ]
  }
}