Säkerhet för fjärrkomponenter

Oracle Content Management ger tredjepartsutvecklare möjlighet att integrera sina anpassade komponenter i plattformen för Oracle Content Management, men ha dem lagrade på en fjärrserver.

Varje fjärrkomponent måste ha registrerade inställnings- och återgivningsslutpunkter för Oracle Content Management. Utöver slutpunkter, måste utvecklare även ange en hemlig nyckel som är unik för den registrerade komponenten.

Oracle Content Management anropar den registrerade komponentens slutpunkter för att realisera innehållet på en webbplatssida. Eftersom de här slutpunkterna är exponerade för det publika internet bör utvecklare kontrollera att slutpunkterna för en registrerad fjärrkomponent anropas från Oracle Content Management. För att verifiera anroparens äkthet levereras ett signerat token till de registrerade slutpunkterna för en URL. Den anropande parten autentiseras genom verifiering av den digitala signatur som finns inbäddad i det signerade tokenet med den hemliga nyckeln för fjärrkomponenten som tillhandahölls under registreringsprocessen.

Formatet för token är:

{base64 encoded serialized JSON data}.{base64 encoded signature}

Här följer ett exempeltoken som överförs till de registrerade appslutpunkterna:

eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=

Detta token består av två unika delar: data och signatur, separerade med avgränsaren ".".

Som en allmän riktlinje bör utvecklare alltid autentisera token i redigerings- eller förhandsgranskningsläge innan de beviljar åtkomst till registrerade slutpunkter för en komponent. I samband med autentiseringen av den anropande parten i inställningsslutpunkten bör utvecklare dessutom alltid vara noga med att titta efter värdet SITE_OWNER i fältet Behörigheter för detta token. I fältet Behörigheter för token visas värdet SITE_OWNER endast i redigeringsläge. Ett token som genereras under en redigeringssession görs aldrig beständigt tillbaka i sidmodellen, och byts ut mot ett exekveringstoken som har värdet NULL i fältet Behörigheter.

Data

Datadelen av instansen är en Base64-JSON-kodad sträng. Här är JSON-strängens struktur:

{
  "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
  "permissions": "",
  "entitlements": "",
  "signdate": "1435426735293",
  "sitedomain": "service1-tenant4.localhost"
}
Namn på fält Beskrivning

instanceid

Unik identifierare för en komponent för en klient i Oracle Content Management.

signdate

Datum då signatur genererades.

sitedomain

Domännamnet på Oracle Content Management-instansen.

permissions

Uppsättning behörigheter för webbplatsmedlemmen. I redigeringsläge har den värdet "SITE_OWNER". I annat fall har den inget värde.

entitlements

Lista över premiumfunktioner som köpts av webbplatsens ägare.

Signatur

Datadelen av fjärrkomponentinstansen serialiseras innan den signeras med en APP_SECRET_KEY. Den här hemliga nyckeln måste genereras och visas för utvecklaren under registreringen av komponenten. Signaturen beräknas genom generering av en hash av komponentinstansens datadel (en serialiserad JSON-struktur) med den hemliga nyckeln, på följande sätt:

$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)

Den hashalgoritm som används för att generera signaturen är SHA256. Token är då sammanfogningen av den serialiserade JSON-strukturen och den genererade signaturkomponenten, enligt följande:

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