4

Я проектирую бэкэнд большого приложения, которое разделено на микросервисы. Я использую Spring Cloud со своими инструментами: Eureka, Zuul и т.д. Я реализованный OAuth2 сервера авторизации, который поддерживает четыре типа гранта. Он работает без проблем.Весенние микросервисы, сеанс бездействия, угловой и статический файл

Затем меня попросили служить HTML файлы и таким образом, что, если не разрешено, бэкенд необходимо перенаправить на страницу входа в систему и настоятельно рекомендуется не использовать сессии. Я думал, что без сеанса весна can not действительно знает, что происходит, в конце у него должен быть токен, чтобы решить создать контекст безопасности.

Я начал изучать эту проблему. Я обнаружил, что примеры из Spring Security and Angular JS tutorial показывают, что маршруты и перенаправления выполняются внутри угловой с помощью ui-route. Я просмотрел несколько проектов в github, и они также использовали углы для перенаправления.

Можно ли перенаправить использование бэкэнда в сеансе без апатии? (Это звучит так глупо, но это не может быть выражено иначе. Я хочу дать этот ответ моим коллегам, которые заявляют, что это возможно). Если возможно, есть ли примеры?

+0

Вы пытались использовать авторизацию на основе JWT маркеров? Он полностью без гражданства, и мы использовали его в архитектуре микросервиса во многих проектах, над которыми я работал. – anataliocs

ответ

0

Если вы используете OAuth2 для внутренней безопасности, я предлагаю использовать oauth для доступа к управлению всеми вашими услугами, рассматривая наличие токена как нечто вроде сеанса.

Рассмотрите возможность создания определенного токена доступа в одном из четырех типов грантов. Теперь вы можете получить доступ к любому защищенному ресурсу весеннего облака , передав этот токен в HTTP-заголовке Authorization: Bearer <token> или в качестве параметра get, например /service/endpoint?access_token=<token>.

Если ваш токен связан с пользователем (вы можете авторизовать клиентов без пользователей!), Вы можете получить доступ к его деталям, получив OAuth2Authentication из securityContext.

Кроме того, если ваши токены доступа - это JWT, которые поддерживаются по умолчанию в безопасности весеннего облака, вам также не нужно предоставлять реальное хранилище токенов на сервере авторизации, и вы не должны запрашивать конечные точки пользователя на сервере auth с сервера ресурсов для получения информации о пользователе, поскольку она отправляется внутри JWT.

С этим все, что связано с вашим «сеансом» (и его состоянием), хранится внутри токена доступа, который вы можете легко обойти и масштабировать без беспорядка репликации.

Я не вещь, которую вы получаете вашу безопасность более чем без гражданства этого;)

Смежные вопросы