DAT CMS ​

DAT CMS — необязательный сервис, который создаёт, хранит и распространяет сертификаты клиентским менеджерам. Документ описывает контракт синхронизации клиентов и сервера. Установку и эксплуатацию см. в руководстве по сервису DAT CMS.

Синхронизация сертификатов
Клиент
DAT CMS
Запросить текущую версию и сертификаты
Вернуть версию и сертификаты
Проверить всё и применить атомарно
requestresponse

Конечные точки по ролям ​

РольПутьИспользуется
Получение полных сертификатовGET /v1/certs?version=<n>Сервисами, выпускающими DAT
Получение сертификатов verify-onlyGET /v1/certs/verify-only?version=<n>Сервисами только для проверки и расшифровки
Регистрация сертификатаPOST /v1/cert/{signature}/{crypto}/{propagation}/{issuance}/{ttl}Операторами или задачами генерации сертификатов

Получение полных сертификатов и verify-only может защищаться разными ролями токенов. Задайте параметр verifyOnly клиентского менеджера, чтобы сервис verify-only не запрашивал полные сертификаты.

Курсор версии ​

Клиент отправляет серверу последнюю применённую версию. Если состояние сервера не изменилось, сертификаты повторно не отправляются. При новом состоянии первая строка ответа содержит версию, а последующие — сертификаты.

Если успешный ответ содержит только версию без сертификатов, клиент сохраняет существующие сертификаты и issuer. Версия сервера ниже клиентской считается ошибкой, состояние не откатывается.

Правила импорта сертификатов ​

  • Если один cid встречается в ответе несколько раз, отклоните весь ответ.
  • Если новый ответ содержит уже имеющийся cid, сохраните существующий сертификат.
  • Разберите и проверьте каждый сертификат до атомарного применения состояния.
  • Не оставляйте частичный набор успешно импортированных сертификатов.
  • Выберите подходящий issuer из сертификатов, доступных для выпуска сейчас.

Начальная и ручная синхронизация ​

Первая синхронизация при создании клиентского менеджера обычно выполняется в режиме best-effort. При ошибке менеджер всё равно создаётся и хранит конкретную последнюю ошибку. Если приложение должно завершить запуск, вызовите API немедленной синхронизации, чтобы ошибка дошла до вызывающей стороны.

Среды без автоматической синхронизации могут отключить интервал и синхронизироваться напрямую по мере необходимости. При включённой автоматической синхронизации закрывайте или останавливайте менеджер при завершении приложения.

Сеть и ошибки ​

Настройте тайм-ауты соединения и всего запроса для production environment. Политики redirect зависят от runtime, поэтому сверяйтесь с документацией библиотеки. Текущие клиенты классифицируют ответы CMS не 2xx как ошибки DAT_CMS_* по HTTP status и не сохраняют подробный error code из JSON response сервера.

При временном сбое storage сервер может продолжать отдавать последний успешный snapshot сертификатов. Если успешного snapshot ещё нет, он отвечает DAT_STORE_UNAVAILABLE.

Документация сервиса ​

Сведения о deployment, databases, access tokens и runtime configuration см. в руководстве по сервису DAT CMS.