@timmpw

Как правильно и секурно реализовать SSO для проекта?

Имеется несколько веб-проектов. Предположим, что домены https://site1.ru, https://site2.ru и https://site3.ru. Необходимо их связать. Пройдя авторизацию в site1.ru, пользователь должен автоматически становиться залогиненным и на других проектах.

Предполагаю, что мы делаем центр аутентификации (например https://auth.ru ) с всей информацией о пользователях.

Далее используем следующую схему:
с https://site1.ru передается логин, пароль на сервер авторизации. В случае успешной проверки данных на auth.ru - генерируем id сессии и дергаем на каждом из проектов скрипт (с проверкой домена сервера, с которого пришел запрос), который в свою очередь установит httponly куку с переданным id. В сессию пишем уникальный key['value'], которым потом проверяем, живая ли еще авторизация.

Для пущего эффекта - раз в N минут регенерируем мастер-токен и рассылаем всем проектам, которым уже солим передаваемые от сайта серверу авторизации данные.

Что я мог упустить и где есть слабые места в этом решении? Спасибо.
  • Вопрос задан
  • 449 просмотров
Пригласить эксперта
Ответы на вопрос 1
nmk2002
@nmk2002
работаю в ИБ
Вам нужно использовать SAML.
В таком случае у вас будет сервер аутентификации (Identity Provider), а ваши сайты(Service Provider) будут использовать его для проверки подлинности пользователей и, если пользователь уже аутентифицирован на одном из ресурсов, то SAML обеспечит SSO.
Могу посоветовать neXus Hybrid Access Gateway.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы