Oracle Content Management consente agli sviluppatori di terze parti di integrare i rispettivi componenti personalizzati nella piattaforma Oracle Content Management, memorizzandoli su un server remoto.
Ogni componente remoto deve disporre di impostazioni ed endpoint di rendering registrati con Oracle Content Management. Oltre agli endpoint, gli sviluppatori devono fornire una chiave segreta univoca per il componente registrato.
Oracle Content Management richiama gli endpoint del componente registrato per creare il contenuto in una pagina del sito. Poiché gli endpoint sono esposti alla rete Internet pubblica, gli sviluppatori devono verificare che gli endpoint di un componente remoto registrato vengano richiamati da Oracle Content Management. Per verificare l'autenticità del chiamante, viene distribuito un token firmato agli endpoint registrati di un URL. La parte chiamante viene autenticata mediante la verifica della firma digitale incorporata nel token firmato con la chiave segreta del componente remoto fornita durante il processo di registrazione.
Il formato del token è il seguente:
{base64 encoded serialized JSON data}.{base64 encoded signature}
Segue un token di esempio passato agli endpoint applicazione registrati:
eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=
Il token è costituito da due parti distinte: i dati e la firma, separati mediante il delimitatore '.'.
La procedura ottimale prevede che gli sviluppatori debbano sempre autenticare il token in modalità Modifica o Anteprima prima di concedere l'accesso agli endpoint registrati di un componente. Inoltre, durante l'autenticazione della parte chiamante nell'endpoint delle impostazioni, gli sviluppatori devono sempre ricordare di cercare un valore SITE_OWNER
nel campo permissions del token. Il campo permissions del token mostra il valore SITE_OWNER
solo in modalità Modifica. Un token generato durante una sessione di modifica non viene mai reso persistente nel modello di pagina e viene sostituito con un token di runtime che contiene il valore NULL
nel campo permissions.
Dati
La parte dati dell'istanza è una stringa codificata JSON Base64. La struttura della stringa JSON è la seguente:
{ "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E", "permissions": "", "entitlements": "", "signdate": "1435426735293", "sitedomain": "service1-tenant4.localhost" }
Nome campo | Descrizione |
---|---|
|
Identificativo univoco di un componente per un tenant Oracle Content Management. |
|
Data di generazione della firma. |
|
Nome dominio dell'istanza di Oracle Content Management. |
|
Set di autorizzazioni per il membro del sito. In modalità Modifica avrà il valore |
|
Lista delle funzioni speciali acquistate dal proprietario del sito. |
Firma
La parte dati dell'istanza del componente remoto viene serializzata prima di essere firmata da APP_SECRET_KEY
. Questa chiave segreta deve essere generata e mostrata allo sviluppatore durante la registrazione del componente. La firma viene calcolata mediante la generazione di un hash della parte dati dell'istanza del componente (una struttura JSON serializzata) con la chiave segreta, come mostrato di seguito.
$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)
L'algoritmo hash utilizzato per la generazione della firma è SHA256. Il token è quindi la concatenazione della struttura JSON serializzata e del componente firma generata, come mostrato di seguito.
$instance = {base64encoded serialized JSON structure}.{base64encoded $signature}