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 |
---|---|
|
Unikatowy identyfikator składnika renderowanego w ramce wstawkowej dla dzierżawy Oracle Content Management. |
|
Data wygenerowania podpisu. |
|
Nazwa domeny instancji Oracle Content Management. |
|
Zestaw uprawnień wspólużytkownika serwisu. W trybie edycji będzie mieć wartość |
|
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=