Задать вопрос
@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 минут регенерируем мастер-токен и рассылаем всем проектам, которым уже солим передаваемые от сайта серверу авторизации данные.

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

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

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