A propos de l'ID d'instance et de la structure des composants affichés dans des cadres incorporés

L'ID d'instance de composant est l'identificateur unique d'un composant affiché dans un cadre incorporé dans un site.

Lorsqu'un utilisateur fait glisser un composant affiché dans un cadre incorporé du catalogue de composants vers une page de site, un appel de provisionnement au service Oracle Sites Cloud est effectué pour la génération d'un ID unique d'instance de composant. L'unicité de cet ID est garantie et toutes les instances de ce composant provisionnées sur ce service obtiendront le même ID d'instance.

Un ID d'instance de composant contient des informations supplémentaires qui peuvent permettre de sécuriser les paramètres et l'utilisation d'un composant affiché dans un cadre incorporé, de telle manière que le composant est assuré que la source de la mise à jour des paramètres est sécurisée.

Le paramètre d'ID d'instance permet aux développeurs d'identifier le site et d'authentifier la partie appelante. L'appelant est authentifié via la vérification d'une signature numérique générée à l'aide de la clé secrète du composant. La clé secrète est générée au cours du processus d'inscription du composant.

L'instance de composant est constituée de deux parties délimitées par un séparateur '.' : données et structure.

Instance de composant : données

La partie données de l'instance d'un composant affiché dans un cadre incorporé est une chaîne JSON encodée en Base64. Voici la structure de la chaîne JSON :

{
  "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
  "permissions": "",
  "entitlements": "",
  "signdate": "1435426735293",
  "sitedomain": "service1-tenant4.localhost"
}
Nom de champ Description

instanceid

Identificateur unique d'un composant affiché dans un cadre incorporé pour un locataire Oracle Content Management.

signdate

Date de génération de la signature.

sitedomain

Nom de domaine de l'instance Oracle Content Management.

permissions

Ensemble des droits d'accès du membre de site. En mode de modification, ce champ affiche la valeur "SITE_OWNER". Dans les autres cas, il n'affiche aucune valeur.

entitlements

Liste des fonctionnalités Premium achetées par le propriétaire du site.

Instance de composant : signature

La partie données de l'instance de composant est sérialisée avant d'être signée par une clé secrète APP_SECRET_KEY. Cette clé secrète doit être générée et présentée au développeur lors de l'inscription du composant. La signature est calculée en générant un hachage de la partie données de l'instance de composant (une structure JSON sérialisée) avec la clé secrète comme indiqué ici :

$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)

L'algorithme de hachage utilisé pour la génération de la signature est SHA256. Le jeton est alors la concaténation de la structure JSON sérialisée et du composant de signature généré comme indiqué ici :

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

Exemple :

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