O Oracle Content Management permite que desenvolvedores de terceiros integrem seus componentes personalizados na plataforma do Oracle Content Management, mas os armazenem em um servidor remoto.
Cada componente remoto deve ter definições registradas e pontos finais de renderização com o Oracle Content Management. Além dos pontos finais, os desenvolvedores também precisam fornecer uma chave secreta exclusiva para o componente registrado.
O Oracle Content Management chama os pontos finais do componente registrado para reconhecer o conteúdo em uma página do site. Como esses pontos finais ficam expostos à Internet pública, os desenvolvedores devem verificar se os pontos finais de um componente remoto registrado estão sendo chamados no Oracle Content Management. Para verificar a autenticidade do chamador, um token assinado é entregue aos pontos finais registrados de um URL. A parte que chama é autenticada verificando a assinatura digital incorporada no token assinado com a chave secreta do componente remoto que foi fornecida durante o processo de registro.
O formato do token é:
{base64 encoded serialized JSON data}.{base64 encoded signature}
Este é um token de amostra transmitido aos pontos finais de aplicativos registrados:
eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=
O token é formado por duas partes distintas: dados e assinatura separados por um delimitador '.'.
Como orientação geral, os desenvolvedores devem sempre autenticar o token no modo de Edição ou Visualização antes de conceder acesso aos pontos finais registrados de um componente. Além disso, durante a autenticação da parte de chamada no ponto final de definições, os desenvolvedores devem sempre ter o cuidado de procurar um valor SITE_OWNER
no campo permissões do token. O campo permissões do token mostra o valor SITE_OWNER
somente no modo de Edição. Um token gerado durante uma sessão de edição nunca é persistido novamente no modelo de página, sendo trocado por um token de runtime com um valor NULL
no campo permissões.
Dados
A parte de dados da instância é 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 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. |
Assinatura
A parte de dados da instância do componente remoto é 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}