关于在内嵌框架中呈现的组件的实例 ID 和结构

组件实例 ID 是在站点中内嵌框架中呈现的组件的唯一标识符。

用户将内嵌框架中呈现的组件从组件目录拖放到站点页上时,将向 Oracle Sites Cloud Service 发出预配调用以生成新的唯一组件实例 ID。此 ID 保证是唯一的,并且在该服务上预配的所有此类组件实例都获取相同的实例 ID。

组件实例 ID 包含可用于保护内嵌框架中呈现的组件的设置和使用的其他信息,以便组件可以确定设置更新来自可信位置。

开发人员通过实例 ID 参数可以识别站点并验证调用方。对调用方验证是通过验证使用组件密钥生成的数字签名来进行的。该密钥是在组件注册过程中生成的。

组件实例包含由 ‘.’ 分隔符分隔的两个部分:数据和结构。

组件实例:数据

内嵌框架中呈现的组件实例的数据部分是 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=