Služba Oracle Content Management umožňuje vývojárom tretích strán integrovať vlastné komponenty na platformu Oracle Content Management, pričom zostávajú uložené na vzdialenom serveri.
Každý vzdialený komponent musí mať nastavenia a koncové body vykreslenia zaregistrované v službe Oracle Content Management. Okrem koncových bodov musia vývojári zadať aj tajný kľúč, ktorý je jednoznačný pre zaregistrovaný komponent.
Služba Oracle Content Management vyvolá koncové body zaregistrovaného komponentu na realizáciu obsahu na stránke lokality. Koncové body sú prístupné na verejnom internete, preto by vývojári mali overiť, či koncové body zaregistrovaného vzdialeného komponentu sú vyvolané zo služby Oracle Content Management. Na overenie autentickosti volajúceho sa do registrovaných koncových bodov adresy URL doručí podpísaný token. Volajúca strana sa autentifikuje tak, že digitálny podpis vnorený do podpísaného tokenu sa overí pomocou tajného kľúča vzdialeného komponentu, ktorý bol zadaný počas procesu registrácie.
Formát tokenu vyzerá takto:
{base64 encoded serialized JSON data}.{base64 encoded signature}
Vzorový token odovzdaný do zaregistrovaných koncových bodov aplikácie:
eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=
Token sa skladá z dvoch odlišných častí: dát a podpisu, ktoré sú oddelené oddeľovačom ".".
Vo všeobecnosti by vývojári mali vždy autentifikovať token v režime úprav alebo ukážky, a to pred udelením prístupu k zaregistrovaným koncovým bodom komponentu. Okrem toho by vývojári počas autentifikácie volajúcej strany v koncovom bode nastavení mali vždy vyhľadať hodnotu SITE_OWNER v poli permissions tokenu. V poli permissions tokenu sa zobrazuje hodnota SITE_OWNER len v režime úprav. Token vygenerovaný počas relácie úprav sa nikdy nezachová v modeli stránky a vypne sa pomocou tokenu času behu, ktorý v poli permissions obsahuje hodnotu NULL.
Dáta
Časť inštancie obsahujúca dáta je reťazec kódovaný pomocou formátu Base64 JSON. Nižšie je uvedená štruktúra reťazca JSON:
{
"instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
"permissions": "",
"entitlements": "",
"signdate": "1435426735293",
"sitedomain": "service1-tenant4.localhost"
}
| Názov poľa | Popis |
|---|---|
|
|
Jednoznačný identifikátor komponentu pre nájomcu služby Oracle Content Management. |
|
|
Dátum generovania podpisu. |
|
|
Názov domény inštancie služby Oracle Content Management. |
|
|
Množina povolení člena lokality. V režime úprav má hodnotu |
|
|
Zoznam prémiových funkcií zakúpených vlastníkom lokality. |
Podpis
Časť inštancie vzdialeného komponentu obsahujúca dáta sa serializuje pred podpisom pomocou tajného kľúča APP_SECRET_KEY. Tento utajený kľúč sa musí vygenerovať a ukázať vývojárovi pri registrácii komponentu. Podpis sa vypočíta generovaním hašu dátovej časti inštancie komponentu (serializovaná štruktúra JSON) s tajným kľúčom, a to takto:
$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)
Algoritmus hašu použitý na generovanie podpisu je SHA256. Token bude predstavovať zreťazenie serializovanej štruktúry JSON a vygenerovaného komponentu podpisu, ako je uvedené nižšie:
$instance = {base64encoded serialized JSON structure}.{base64encoded $signature}