Oracle Content Management permet aux développeurs tiers d'intégrer leurs composants personnalisés dans la plate-forme Oracle Content Management, mais ils doivent être stockés sur un serveur distant.
Chaque composant distant doit posséder des paramètres et des adresses d'affichage inscrits auprès d'Oracle Content Management. Outre les adresses, les développeurs doivent également fournir une clé secrète propre au composant inscrit.
Oracle Content Management appelle les adresses des composants inscrits pour afficher le contenu sur la page de site. Comme ces adresses sont exposées sur le réseau public Internet, les développeurs doivent vérifier que les adresses des composants distants inscrits sont bien appelées à partir d'Oracle Content Management. Pour vérifier l'authenticité de l'appelant, un jeton signé est fourni aux adresses inscrites d'une URL. La partie appelante est authentifiée par la vérification de la signature numérique imbriquée dans le jeton signé avec la clé secrète du composant distant qui a été fournie lors du processus d'inscription.
Le format du jeton est le suivant :
{base64 encoded serialized JSON data}.{base64 encoded signature}
Exemple de jeton transmis à des adresses d'application inscrites :
eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=
Le jeton est constitué de deux parties distinctes : les données et la signature, séparées par le délimiteur ".".
Il est généralement recommandé aux développeurs de toujours authentifier le jeton en mode Modification ou Aperçu avant d'accorder l'accès aux adresses inscrites d'un composant. En outre, lors de l'authentification de la partie appelante dans l'adresse des paramètres, il est conseillé aux développeurs de toujours vérifier la valeur SITE_OWNER
du champ permissions du jeton. Le champ permissions du jeton affiche la valeur SITE_OWNER
uniquement en mode Modification. Un jeton généré lors d'une session de modification n'est jamais persistant dans le modèle de page et il est remplacé par un jeton d'exécution qui affiche la valeur NULL
dans le champ permissions.
Données
La partie données de l'instance 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 |
---|---|
|
Identificateur unique d'un composant pour un locataire Oracle Content Management. |
|
Date de génération de la signature. |
|
Nom de domaine de l'instance Oracle Content Management. |
|
Ensemble des droits d'accès du membre de site. En mode Modification, le champ affichera la valeur |
|
Liste des fonctionnalités Premium achetées par le propriétaire du site. |
Signature
La partie données de l'instance de composant distant 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}