Что вы можете сделать, так это сделать ваши приложения без состояния, когда дело доходит до безопасности.
Что это значит?
Spring Security больше не будет создавать сеанс для нового вошедшего в систему пользователя. Когда пользователь входит в систему, вы выдаете ему токен (например, JWT). Каждый раз, когда пользователь получает доступ к защищенному содержимому, он/она должен будет предоставить токен, и ваши приложения будут проверять этот токен с помощью открытого или закрытого ключа (в зависимости от того, какой тип шифрования токена вы будете использовать — симметричный или асимметричный). В конце концов, вам не нужно будет ничем делиться, если оба ваших приложения имеют одинаковые ключи для проверки входящих токенов.
Несколько советов:
Маркер, который вы отправляете при каждом запросе на доступ к защищенным ресурсам, называется «токен доступа». Сделайте его сроком действия и сделайте его недолгим (например, 15 минут). Почему? Этот токен не может быть немедленно аннулирован, в отличие от сеанса, который можно просто удалить. В случае, если кто-то его угонит, он все равно сможет получить доступ к защищенным ресурсам.
Поскольку ваш «токен доступа» недолговечен, пользователю будет неудобно входить в систему каждые 15 минут. Чтобы продлить его жизнь, вы можете иметь другой тип токена, называемый «токен обновления», который можно хранить в какой-либо базе данных. Этот токен можно немедленно аннулировать, просто удалив его из базы данных. Поэтому, если кто-то даже его угонит, пользователь сможет отозвать его, а угонщик не сможет продлить свою сессию.
Ссылки: Аутентификация без сохранения состояния с помощью JWT
person
Branislav Lazic
schedule
23.10.2018