Как работает SSO (единый вход в систему)
(продолжение предыдущего поста)
SSO можно представить как главный ключ, открывающий все разные замки. Эта технология позволяет пользователю входить в различные системы, используя единый набор учётных данных.
Чтобы полностью понять процесс SSO, рассмотрим, как пользователь входит в LinkedIn с помощью Google в качестве поставщика удостоверений:
1. Запрос на доступ
Сначала пользователь пытается получить доступ к поставщику услуг (LinkedIn). На этом этапе ему предлагаются варианты входа в систему, и в нашем примере он выбирает «Войти через Google».
2. Запрос на аутентификацию
Поставщик услуг (LinkedIn) перенаправляет пользователя к поставщику удостоверений (Google) с запросом на аутентификацию.
3. Проверка активной сессии
Получив запрос, поставщик удостоверений (Google) проверяет наличие активной сессии. Если она не найдена, запрашивается аутентификация.
4. Пользователь отправляет учётные данные
На этом этапе пользователь отправляет свои учётные данные (имя пользователя и пароль) поставщику удостоверений (IdP).
5. Проверка учётных данных
Поставщик удостоверений сверяет предоставленные учётные данные со своим каталогом пользователей (базой данных). Если учётные данные верны, IdP создаёт токен аутентификации или подтверждение.
6. Поставщик удостоверений отправляет токен поставщику услуг
После создания токена или подтверждения IdP отправляет его обратно поставщику услуг, подтверждая личность пользователя. Теперь пользователь аутентифицирован и может получить доступ к поставщику услуг (LinkedIn).
7. Доступ предоставлен с использованием существующей сессии
Поскольку поставщик удостоверений установил сессию, когда пользователь обращается к другому поставщику услуг (например, GitHub), ему не нужно повторно вводить свои учётные данные. Будущие поставщики услуг будут запрашивать аутентификацию у поставщика удостоверений, распознавать существующую сессию и предоставлять пользователю доступ на основе ранее подтверждённой сессии.
Рабочие процессы SSO, подобные описанному выше, работают на протоколах SSO — наборе правил, которые регулируют взаимодействие и доверие между IdP и SP. Распространённые протоколы включают язык разметки утверждений безопасности (SAML), OpenID Connect и OAuth.
Post #2503
1.8K