O ID da Instância do componente é o identificador exclusivo de um componente renderizado em um iframe dentro de um site.
Quando um usuário arrasta e solta um componente renderizado em um frame do Catálogo de Componentes para uma página do site, uma chamada de provisionamento é feita ao Oracle Sites Cloud Service para gerar um novo ID de instância exclusivo do componente. É garantido que esse ID seja exclusivo e todas as instâncias do componente provisionadas nesse serviço obterão o mesmo ID de instância.
Um ID de instância do componente contém informações adicionais que podem ser usadas para proteger as definições e o uso de um componente renderizado em um iframe, de modo que o componente possa assegurar-se de que a atualização das Definições esteja vindo de um local confiável.
O parâmetro de ID da instância permite que os desenvolvedores identifiquem o site e autentiquem a parte que faz a chamada. O chamador é autenticado verificando uma assinatura digital que é gerada usando a chave secreta do componente. A chave secreta é gerada durante o processo de registro do componente.
A instância do componente consiste em duas partes separadas por um delimitador ‘.’: dados e estrutura.
Instância do Componente: Dados
A parte de dados da instância de um componente renderizado em um iframe é uma string codificada por Base64 JSON. Esta é a estrutura da string JSON:
{ "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E", "permissions": "", "entitlements": "", "signdate": "1435426735293", "sitedomain": "service1-tenant4.localhost" }
Nome do Campo | Descrição |
---|---|
|
Identificador exclusivo de um componente renderizado em um frame embutido para um tenant do Oracle Content Management. |
|
Data da geração da assinatura. |
|
Nome de domínio da instância do Oracle Content Management. |
|
Conjunto de permissões do membro do site. No modo de edição, terá o valor |
|
Lista de recursos premium comprados pelo proprietário do site. |
Instância do Componente: Assinatura
A parte de dados da instância do componente é serializada antes de ser assinada por um APP_SECRET_KEY
. Essa chave secreta deve ser gerada e mostrada ao desenvolvedor ao registrar o componente. A assinatura é calculada com a geração de um hash da parte de dados da instância do componente (uma estrutura JSON serializada) com a chave secreta, conforme mostrado aqui:
$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)
O algoritmo de hash usado na geração da assinatura é SHA256. O token então é a concatenação da estrutura JSON serializada e o componente da assinatura gerada, conforme mostrado aqui:
$instance = {base64encoded serialized JSON structure}.{base64encoded $signature}
Exemplo:
//base64 encoded serialized object //signature eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=