インライン・フレームでレンダリングされるコンポーネントのインスタンス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"
}
フィールド名 | 説明 |
---|---|
|
Oracle Content Managementテナントのインライン・フレームにレンダリングされるコンポーネントの一意の識別子。 |
|
署名の生成日。 |
|
Oracle Content Managementインスタンスのドメイン名。 |
|
サイト・メンバーの権限のセット。 編集モードでは、値は |
|
サイト所有者によって購入されたプレミアム機能のリスト。 |
コンポーネント・インスタンス: 署名
コンポーネント・インスタンスのデータ部分は、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=