インライン・フレームでレンダリングされたコンポーネントのインスタンスIDおよび構造について

コンポーネント・インスタンスIDは、サイト内のインライン・フレームでレンダリングされたコンポーネントの一意の識別子です。

インライン・フレームでレンダリングされたコンポーネントをユーザーがコンポーネント・カタログからサイト・ページにドラッグ・アンド・ドロップすると、Oracle Sites Cloud Serviceに対してプロビジョニング・コールが行われ、新しい一意のコンポーネント・インスタンスIDが生成されます。このIDは一意であることが保証されており、そのサービスでプロビジョニングされるそのようなコンポーネント・インスタンスはすべて、同じインスタンスIDを取得します。

コンポーネント・インスタンスIDには、インライン・フレームでレンダリングされたコンポーネントの設定および使用を保護するために使用できる追加情報が含まれるため、コンポーネントは、設定の更新が信頼できる場所からのものであることを確信できます。

開発者は、インスタンスIDパラメータを使用して、サイトを特定し、コール元を認証できます。コール元は、コンポーネントの秘密鍵を使用して生成されたデジタル署名を検証することによって認証されます。秘密鍵は、コンポーネントの登録プロセス中に生成されます。

コンポーネント・インスタンスは、「.」によって区切られたデータと構造の2つの部分で構成されています。

コンポーネント・インスタンス: データ

インライン・フレームでレンダリングされたコンポーネントのインスタンスのデータ部分は、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}

例:

//base64 encoded serialized object           //signature
eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=