機械翻訳について

リモート・コンポーネントのセキュリティ

Oracle Content Managementを使用すると、サードパーティ開発者はカスタム・コンポーネントをOracle Content Managementプラットフォームに統合できますが、リモート・サーバーに格納できます。

各リモート・コンポーネントには、Oracle Content Managementに登録された設定およびレンダリング・エンドポイントが必要です。 エンドポイントに加え、開発者は、登録済コンポーネントに固有の秘密キーを指定する必要もあります。

Oracle Content Managementは、登録済コンポーネントのエンドポイントを起動して、サイト・ページのコンテンツを実現します。 これらのエンドポイントはパブリック・インターネットに公開されるため、開発者は、登録されたリモート・コンポーネントのエンドポイントがOracle Content Managementから起動されていることを確認する必要があります。 呼出し元の信頼性を確認するために、署名済トークンがURLの登録済エンドポイントに送信されます。 コール側パーティの認証は、登録プロセス中に指定されたリモート・コンポーネントの秘密キーを使用して、署名済トークンに埋め込まれたデジタル署名を検証することで行われます。

トークンの形式は次のとおりです。

{base64 encoded serialized JSON data}.{base64 encoded signature}

登録済アプリケーション・エンドポイントに渡されたサンプル・トークンは次のとおりです:

eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=

トークンは、「.」デリミタで区切られた2つの別個の部分であるデータと署名で構成されています。

一般的なガイドラインとして、開発者は、コンポーネントの登録済エンドポイントへのアクセス権を付与する前に、必ず編集モードかプレビュー・モードでトークンを認証する必要があります。 また、設定エンドポイントで呼出し元パーティを認証する場合、開発者は常に、トークンの「許可」フィールドのSITE_OWNER値を検索するように注意する必要があります。 トークンのpermissionsフィールドには、編集モードでのみSITE_OWNER値が表示されます。 編集セッション中に生成されたトークンは、ページ・モデルに戻されることはなく、「許可」フィールドにNULL値を持つランタイム・トークンでスイッチ・アウトされます。

データ

インスタンスのデータ部分は、Base64 JSONでエンコードされた文字列です。 次に、JSON文字列の構造を示します。

{
  "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
  "permissions": "",
  "entitlements": "",
  "signdate": "1435426735293",
  "sitedomain": "service1-tenant4.localhost"
}
フィールド名 説明

instanceid

Oracle Content Managementテナントのコンポーネントの一意の識別子。

signdate

署名の生成日。

sitedomain

Oracle Content Managementインスタンスのドメイン名。

permissions

サイト・メンバーの権限のセット。 編集モードでは、値"SITE_OWNER"が設定されます。それ以外の場合は値がありません。

entitlements

サイト所有者によって購入されたプレミアム機能のリスト。

シグネチャ

リモート・コンポーネント・インスタンスのデータ部分は、APP_SECRET_KEYによって署名される前に直列化されます。 この秘密キーは、コンポーネントの登録中に生成され、開発者に示される必要があります。 署名は、次に示すように、秘密鍵を使用してコンポーネント・インスタンスのデータ部分(シリアル化されたJSON構造)のハッシュを生成することによって計算されます:

$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)

署名の生成に使用されるハッシュ・アルゴリズムは、SHA256です。 トークンは、次に示すように、シリアル化されたJSON構造と生成された署名コンポーネントの連結です。

$instance = {base64encoded serialized JSON structure}.{base64encoded $signature}