组件实例 ID 是在站点中内嵌框架中呈现的组件的唯一标识符。
用户将内嵌框架中呈现的组件从组件目录拖放到站点页上时,将向 Oracle Sites Cloud Service 发出预配调用以生成新的唯一组件实例 ID。此 ID 保证是唯一的,并且在该服务上预配的所有此类组件实例都获取相同的实例 ID。
组件实例 ID 包含可用于保护内嵌框架中呈现的组件的设置和使用的其他信息,以便组件可以确定设置更新来自可信位置。
开发人员通过实例 ID 参数可以识别站点并验证调用方。对调用方验证是通过验证使用组件密钥生成的数字签名来进行的。该密钥是在组件注册过程中生成的。
组件实例包含由 ‘.’ 分隔符分隔的两个部分:数据和结构。
组件实例:数据
内嵌框架中呈现的组件实例的数据部分是 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=