ID instancji i struktura składników renderowanych w ramkach wstawkowych — informacje podstawowe

ID instancji składnika jest unikatowym identyfikatorem składnika renderowanego w ramce wstawkowej w obrębie serwisu.

Gdy użytkownik przeciąga składnik (renderowany w ramce wstawkowej) z Katalogu składników i "upuszcza" ten składnik na stronie serwisu, do usługi Oracle Sites Cloud Service jest kierowane wywołanie zlecające wygenerowanie nowego unikatowego ID instancji składnika. Unikatowość tego ID jest gwarantowana, a wszystkie instancje tego składnika, udostępniane w tej samej usłudze, będą miały ten sam ID instancji.

ID instancji składnika zawiera dodatkowe informacje, których można użyć do zabezpieczenia ustawień oraz do zabezpieczenia użycia składnika renderowanego w ramce wstawkowej, dzięki czemu składnik ma pewność, że aktualizacja ustawień przychodzi z zaufanego miejsca.

Parametr "ID instancji" umożliwia programistom identyfikację serwisu i podmiotu wywołującego. Podmiot wywołujący jest identyfikowany przez sprawdzenie podpisu cyfrowego, który jest generowany przy użyciu tajnego klucza składnika. Tajny klucz jest generowany w trakcie procesu rejestracji składnika.

Instancja składnika składa się z dwóch części rozdzielonych kropką (.); są to: dane i struktura.

Instancja składnika: dane

Część "dane" instancji składnika renderowanego w ramce wstawkowej ma postać napisu w notacji JSON Base64. Struktura napisu JSON przedstawia się następująco:

{
  "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
  "permissions": "",
  "entitlements": "",
  "signdate": "1435426735293",
  "sitedomain": "service1-tenant4.localhost"
}
Nazwa pola Opis

instanceid

Unikatowy identyfikator składnika renderowanego w ramce wstawkowej dla dzierżawy Oracle Content Management.

signdate

Data wygenerowania podpisu.

sitedomain

Nazwa domeny instancji Oracle Content Management.

permissions

Zestaw uprawnień wspólużytkownika serwisu. W trybie edycji będzie mieć wartość SITE_OWNER; w przeciwnym razie nie będzie mieć przypisanej żadnej wartości.

entitlements

Lista funkcji "premium" nabytych przez właściciela serwisu.

Instancja składnika: podpis

Część "dane" instancji składnika jest serializowana, zanim instancja zostanie podpisana za pomocą tajnego klucza APP_SECRET_KEY. Tajny klucz musi zostać wygenerowany i pokazany programiście podczas rejestracji składnika. Podpis jest obliczany przez wygenerowanie skrótu (hash) części "dane" składnika instancji (serializowana struktura JSON) przy użyciu tajnego klucza, jak pokazano poniżej:

$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)

Algorytmem haszowania, używanym do wygenerowania podpisu, jest SHA256. Token stanowi wówczas połączenie serializowanej struktury JSON i wygenerowanego składnika podpisu, jak pokazano poniżej:

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

Przykład:

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