Oracle Content Management позволяет сторонним разработчикам интегрировать свои пользовательские компоненты в Oracle Content Management, но с хранением на удаленном сервере.
У каждого удаленного компонента должны быть зарегистрированные настройки и конечные точки рендеринга с Oracle Content Management. Помимо конечных точек разработчикам также необходимо предоставить секретный ключ, уникальный для зарегистрированного компонента.
Oracle Content Management вызывает конечные точки зарегистрированного компонента для реализации контента на странице сайта. Поскольку такие конечные точки доступны из общедоступного Интернета, разработчики должны убедиться, что конечные точки зарегистрированного удаленного компонента вызываются из Oracle Content Management. Для проверки подлинности вызывающего абонента на зарегистрированные конечные точки URL-адреса передается подписанный маркер. Вызывающая сторона аутентифицируется путем проверки цифровой подписи, встроенной в подписанный маркер, с помощью секретного ключа удаленного компонента, который был предоставлен в процессе регистрации.
Формат маркера:
{base64 encoded serialized JSON data}.{base64 encoded signature}
Пример маркера, переданного зарегистрированным конечным точкам приложения:
eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=
Маркер состоит из двух отдельных частей: данные и подпись, разделенные точкой (".").
Как правило, разработчики должны всегда проверять подлинность маркера в режиме редактирования или предварительного просмотра перед предоставлением доступа к зарегистрированным конечным точкам компонента. Кроме того, при аутентификации вызывающего абонента в конечной точке настроек разработчики должны всегда искать значение SITE_OWNER
в поле разрешений маркера. В поле разрешений маркера значение SITE_OWNER
отображается только в режиме редактирования. Маркер, созданный во время сеанса редактирования, никогда не сохраняется обратно в модель страницы и отключается с помощью маркера времени выполнения со значением NULL
в поле разрешений.
Данные
Часть данных экземпляра — это строка JSON в кодировке Base64. Структура строки JSON:
{ "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E", "permissions": "", "entitlements": "", "signdate": "1435426735293", "sitedomain": "service1-tenant4.localhost" }
Имя поля | Описание |
---|---|
|
Уникальный идентификатор компонента для арендатора Oracle Content Management. |
|
Дата создания подписи. |
|
Имя домена экземпляра Oracle Content Management. |
|
Набор разрешений участника сайта. В режиме редактирования имеет значение |
|
Список премиальных функций, приобретенных владельцем сайта. |
Подпись
Часть данных экземпляра удаленного компонента сериализована перед подписанием с использованием APP_SECRET_KEY
. Этот секретный ключ должен быть создан и показан разработчику во время регистрации компонента. Подпись рассчитывается путем создания хеша части данных экземпляра компонента (сериализованной структуры JSON) с использованием секретного ключа, как показано ниже:
$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)
При создании подписи используется алгоритм хеширования SHA256. Маркер представляет собой конкатенацию сериализованной структуры JSON и созданного компонента подписи, как показано ниже:
$instance = {base64encoded serialized JSON structure}.{base64encoded $signature}