Что такое DAT? ​

DAT (Distributed Access Token) — спецификация access token, которую используют сервисы выпуска и проверки с общими сертификатами. Поскольку для проверки не нужен дополнительный запрос к сервису выпуска или центральному session store, результаты аутентификации можно передавать между менее тесно связанными сервисами.

expire
uint64
.
cid
uint64
.
plain
bytes
.
secure
bytes
.
signature
bytes
Поля, разделённые точками, образуют один DAT.

Компоненты ​

DAT ​

Строка, которую пользователь или сервис отправляет с запросом. Она включает время истечения и ID сертификата и может содержать открытые и зашифрованные данные.

Сертификат ​

Содержит algorithms, ключи и временные диапазоны для создания и проверки DAT. ID сертификата cid неизменяем; при ротации ключей используйте новый cid.

Менеджер ​

Менеджер клиентской библиотеки хранит сертификаты, создаёт DAT с сертификатом, доступным для выпуска, и проверяет каждый DAT сертификатом с соответствующим cid.

DAT CMS ​

Необязательный сервер, который создаёт, хранит и распространяет сертификаты по сервисам. Он может предоставлять полные сертификаты сервисам выпуска и сертификаты verify-only сервисам, которые только проверяют токены.

Выпуск и проверка ​

person Пользователь
workspace_premium DAT CMS
Управление сертификатами
Синхронизация по версиям
login Сервис выпуска
apps Сервис проверки

Сервис выпуска выбирает данные plain и secure и создаёт DAT. Сервис проверки проверяет время истечения, подпись и ciphertext, а затем передаёт приложению обе области данных. Поскольку plain подписан, но не зашифрован, не помещайте туда секреты или персональные данные.

Почему проверка работает после смены сертификатов ​

Когда новый сертификат становится доступен для выпуска, последующие DAT используют его новый cid. Предыдущий сертификат остаётся доступным для проверки, пока не истечёт TTL каждого выпущенного им DAT. Так ротация ключей управляется вместе с периодом проверки существующих токенов.

Где подходит DAT ​

  • Среды, где аутентификацию и функции приложения обрабатывают разные сервисы
  • Среды, где несколько runtimes выпускают или проверяют один формат токена
  • Системы, которым нужно переносить краткосрочные данные авторизации без центрального session lookup
  • Системы, которым нужно разделять открытую информацию маршрутизации и защищённые данные в одном токене

DAT не определяет саму политику авторизации. Действительность DAT и решение приложения разрешить запрос — разные вопросы.

Следующие шаги ​