2016-04-21 3 views
0

Я разрабатываю приложение, которое потребует от пользователей первого входа в систему, а затем доступа к нескольким защищенным веб-страницам. Я планирую использовать AWS вместе с балансировщиком нагрузки AWS и ожидать, что несколько экземпляров AWS этого приложения будут запущены. Какова «наилучшая практика» для сохранения учетных данных безопасности на нескольких веб-страницах и нескольких экземплярах? Пользователь войдет в систему, а затем перейдет через несколько защищенных веб-страниц. Я предполагаю, что балансировщик нагрузки AWS будет циклически перенаправлять каждый запрос https на другой экземпляр сервера. Как каждый экземпляр знает, что пользователь успешно вошел в систему? Кроме того, как защитить защищенные страницы от внешнего доступа? Платформа будет Linux, Java и Spring-boot.Доступ к паролю с несколькими экземплярами

ответ

0

Я предполагаю, что балансировщик нагрузки AWS будет циклически перенаправлять каждый запрос на другой экземпляр сервера.

Это поведение ELB по умолчанию, но вы можете включить sticky sessions на Elastic Load Balancer, чтобы заблокировать пользователя к определенному внутреннему серверу, на котором указать HTTP сессии, хранящуюся на этом одном сервере отслеживает пользователя состояние аутентификации.

Как каждый экземпляр знает, что пользователь успешно вошел в систему?

Это не так, если вы не настроили какой-либо общий хранилище сеансов. Я предпочитаю использовать Redis (ElastiCache) в качестве общего хранилища сеансов. Конечно, если вы включите липкие сеансы в ELB, что может помешать необходимости совместного хранилища сеансов.

Также, как защитить защищенные страницы от внешнего доступа? Платформа будет Linux, Java и Spring-boot.

Это не особенность AWS. Вам нужно будет добавить безопасность в ваше приложение. Посмотрите на Spring Security.

+0

Здравствуйте, Марк, я полагаю, что я могу использовать IP-адрес пользователей как ключ и уникальную авторизацию безопасности приложения в качестве значения? Я могу использовать функцию истечения срока действия Redis, чтобы в конечном итоге удалить пару значений ключа, если пользователь не выходит из системы. Это будет ваш подход? – skmansfield

+0

Нет, это не тот подход, который я бы взял вообще. Вы пытаетесь запустить свою собственную систему безопасности, когда эта проблема уже решена для вас. Также использование IP-адреса - ужасная идея, поскольку нет гарантии, что каждый пользователь будет иметь уникальный IP-адрес. Вам нужно изучить Spring Security и использовать диспетчер сеансов Tomcat, который использует Redis, поскольку он является хранилищем. Вы не должны пытаться самостоятельно управлять сеансами пользователя. –

+0

Привет, Марк, Отличный ввод. Можете ли вы дать мне пару имен компонентов безопасности, на которые я должен смотреть? Весенняя документация является объемной. Тем не менее, он имеет тенденцию сосредотачиваться больше на процедуре, чем большая картина. Я хочу понять компоненты интереса и получить большую картину. – skmansfield

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