Что такое DAT?
DAT (Distributed Access Token) — спецификация access token, которую используют сервисы выпуска и проверки с общими сертификатами. Поскольку для проверки не нужен дополнительный запрос к сервису выпуска или центральному session store, результаты аутентификации можно передавать между менее тесно связанными сервисами.
Компоненты
DAT
Строка, которую пользователь или сервис отправляет с запросом. Она включает время истечения и ID сертификата и может содержать открытые и зашифрованные данные.
Сертификат
Содержит algorithms, ключи и временные диапазоны для создания и проверки DAT. ID сертификата cid неизменяем; при ротации ключей используйте новый cid.
Менеджер
Менеджер клиентской библиотеки хранит сертификаты, создаёт DAT с сертификатом, доступным для выпуска, и проверяет каждый DAT сертификатом с соответствующим cid.
DAT CMS
Необязательный сервер, который создаёт, хранит и распространяет сертификаты по сервисам. Он может предоставлять полные сертификаты сервисам выпуска и сертификаты verify-only сервисам, которые только проверяют токены.
Выпуск и проверка
Сервис выпуска выбирает данные plain и secure и создаёт DAT. Сервис проверки проверяет время истечения, подпись и ciphertext, а затем передаёт приложению обе области данных. Поскольку plain подписан, но не зашифрован, не помещайте туда секреты или персональные данные.
Почему проверка работает после смены сертификатов
Когда новый сертификат становится доступен для выпуска, последующие DAT используют его новый cid. Предыдущий сертификат остаётся доступным для проверки, пока не истечёт TTL каждого выпущенного им DAT. Так ротация ключей управляется вместе с периодом проверки существующих токенов.
Где подходит DAT
- Среды, где аутентификацию и функции приложения обрабатывают разные сервисы
- Среды, где несколько runtimes выпускают или проверяют один формат токена
- Системы, которым нужно переносить краткосрочные данные авторизации без центрального session lookup
- Системы, которым нужно разделять открытую информацию маршрутизации и защищённые данные в одном токене
DAT не определяет саму политику авторизации. Действительность DAT и решение приложения разрешить запрос — разные вопросы.
Следующие шаги
- Спецификация DAT: поля токена и правила проверки
- Сертификаты: ключи и временные диапазоны
- Спецификация DAT CMS: контракт синхронизации
- Библиотеки: интеграция с приложением