Despre ID instanţă şi structură pentru componente randate în cadre inline

ID-ul de instanţă al unei componente reprezintă identificatorul unic al unei componente randate într-un cadru inline de pe un site.

Când un utilizator trage şi plasează o componentă randată într-un cadru inline din catalogul de componente pe o pagină a unui site, se efectuează un apel de alocare către Oracle Sites Cloud Service pentru generarea unui ID de instanţă unic pentru componentă. Unicitatea acestui ID este garantată şi toate instanţele de componente alocate în acel serviciu vor primi acelaşi ID de instanţă.

Un ID de instanţă pentru componentă conţine informaţii suplimentare care pot fi utilizate pentru securizarea setărilor şi utilizării unei componente randate într-un cadru inline, astfel încât pentru componentă există siguranţa că actualizarea setărilor provine dintr-o locaţie de încredere.

Parametrul ID-ului de instanţă permite dezvoltatorilor să identifice site-ul şi să autentifice entitatea care efectuează apelul. Entitatea care efectuează apelul este identificată prin verificarea unei semnături digitale care este generată prin utilizarea cheii secrete a componentei. Cheia secretă este generată în timpul procesului de înregistrare a componentei.

Instanţa unei componente este alcătuită din două părţi, separate printr-un delimitator ‘.’: datele şi structura.

Instanţa unei componente: Datele

Partea de date a instanţei unei componente randate într-un cadru inline este un şir JSON codificat prin algoritmul Base64. Structura şirului JSON este următoarea:

{
  "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
  "permissions": "",
  "entitlements": "",
  "signdate": "1435426735293",
  "sitedomain": "service1-tenant4.localhost"
}
Nume câmp Descriere

instanceid

Identificatorul unic al unei componente randate într-un cadru inline pentru o entitate găzduită Oracle Content Management.

signdate

Data generării semnăturii.

sitedomain

Numele domeniului pentru instanţa Oracle Content Management.

permissions

Setul de permisiuni al membrului site-ului. În modul de editare, acesta va avea valoarea "SITE_OWNER"; altfel, nu va avea nicio valoare.

entitlements

Lista caracteristicilor premium achiziţionate de responsabilul site-ului.

Instanţa unei componente: Semnătura

Partea de date a instanţei unei componente este serializată înainte de a fi semnată cu o cheie APP_SECRET_KEY. Această cheie secretă trebuie să fie generată şi apoi afişată dezvoltatorului în timpul înregistrării componentei. Semnătura este calculată prin generarea unei valori hash aferente părţii de date a instanţei componentei (o structură JSON serializată) cu cheia secretă, aşa cum se arată aici:

$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)

Algoritmul hash utilizat pentru generarea semnăturii este SHA256. Tokenul rezultă prin concatenarea structurii JSON serializate cu componenta de semnătură generată, aşa cum se arată aici:

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

Exemplu:

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