Я немного запутался с понятием "без статов". У меня есть ситуация, когда мое приложение основано на архитектуре без сохранения состояния. Аутентификация выполняется с помощью токенов JWT (провайдеры аутентификации, такие как KeyCloack и OpenAM, не используются).
Это простой механизм, в котором внешний интерфейс регистрирует в бэкэнде ответ, который отвечает токеном JWT, содержащим данные пользователя (включая идентификатор, роли ...). Маркер будет выдаваться в заголовке каждого запроса http.
Теперь задействованы другие концепции безопасности (кроме ролей, которые мы добавляем для защиты данных). Моя проблема в том, что размер может быстро расти даже при хорошей настройке безопасности (создание групп, скрытие деталей внутри группы, помещение в маркер только идентификатора группы).
Поскольку я нахожусь в контексте отсутствия состояния, каждый http-запрос должен предоставлять контекст безопасности, чтобы сервер мог на него ответить.
Большинство серверов имеют ограничение размера заголовка 8K, и, насколько я знаю, рекомендуется помещать токен JWT в заголовок.
Мой вопрос: как заставить эту работу работать без компромиссов:
- Архитектура без сохранения состояния: сервер не должен хранить какую-либо информацию о сеансе.
- Идентичность: чтобы выполнить запрос, сервер должен знать, к каким ролям и области данных пользователь может получить доступ
- Ограничение заголовка: 8 КБ (я могу увеличить, но я не думаю, что это хорошая идея).
Спасибо за вашу помощь.