SSO



SSO (Single Sign-On)
– это технология, которая позволяет пользователю войти в несколько систем без повторной аутентификации.



Например, пользователь входит в систему под своей корпоративной учёткой. Далее он может открывать портал компании, Confluence, Zoom, Outlook, Office – и ему не придётся проходить аутентификацию в каждом приложении по отдельности.



Как работает SSO



1️⃣ Когда пользователь входит в приложение, генерируется SSO-токен и отправляется запрос на аутентификацию в службу SSO.



2️⃣ Сервис проверяет, был ли пользователь ранее аутентифицирован в системе. Если да, он отправляет приложению ответ с подтверждением аутентификации, чтобы предоставить пользователю доступ.



3️⃣ Если у пользователя нет подтвержденного аккаунта, служба SSO перенаправляет пользователя в центральную систему входа (в нашем примере – аутентификация в ОС) и предлагает ему ввести имя пользователя и пароль.



4️⃣ После отправки сервис проверяет учетные данные пользователя и отправляет положительный ответ приложению.



5️⃣ В противном случае пользователь получает сообщение об ошибке и должен повторно ввести учетные данные. Многочисленные неудачные попытки входа в систему могут привести к тому, что сервис заблокирует пользователя от дальнейших попыток на определенный период времени.



Протоколы для SSO



🔸 SAML — это протокол аутентификации, основанный на языке XML. Веб-приложения используют SAML, чтобы передавать аутентификационные данные между сторонами процесса: а именно, между системой управления доступами и провайдером услуг.



🔹 OAuth 2.0 – это протокол авторизации, который позволяет приложениям получать доступ к информации пользователя с других сайтов, не сообщая ему пароль. Вместо постоянного использования паролей, приложения используют токены для доступа к данным данным.



OpenID Connect

OAuth 2.0 разработан только для авторизации — для предоставления доступа к данным и функциям от одного приложения другому.

OpenID Connect (OIDC) — это слой поверх OAuth 2.0, добавляющий сведения о логине и профиле пользователя, который вошел в учетную запись.



🆚 OAuth VS SAML

OAuth и SAML — это протоколы, используемые для предоставления доступа. Но есть радикальное отличие между ними — SAML для аутентификации, а OAuth для авторизации.



Преимущества SSO



💩Удобство: пользователь не тратит время и силы на запоминание, ввод или восстановление множества аккаунтов.



💩Безопасность: пользователь может использовать один сильный пароль, который не хранится и не передается. Токены имеют ограниченный срок действия и могут быть отозваны.



💩Управление: администратор может централизованно управлять учетными записями, ролями, правами и активностью пользователей, а также интегрировать новые приложения или сайты в систему SSO.



⛔️ Недостатки SSO



💩Сложность: реализация и поддержка SSO требует дополнительных затрат и ресурсов, таких как разработка, настройка, совместимость и безопасность разных компонентов системы.



💩Зависимость: если центральный сервер SSO выходит из строя, то все приложения, которые используют SSO, тоже падают. Также, если пользователь теряет свой логин или пароль от центрального сервера, то он теряет доступ ко всем приложениям.



💩Приватность: пользователь может не захотеть делиться своей личной информацией с разными приложениями, которые используют SSO.



🔹 Наши подборки

Авторизация и аутентификация:

обзор + подборка материалов



📄 Статьи

1. Как работает single sign-on (технология единого входа)?

2. Технология единого входа: как работает SSO

3. Реализация SSO через SAML с примером

4. OpenID Connect (OIDC): Как получить токен?

5. Иллюстрированное руководство по OAuth и OpenID Connect

6. Как работает OAuth 2.0 и OpenID Connect

7. SAML простыми словами

8. Статьи про Keycloak: 1 и 2

9. SSO на микросервисной архитектуре. Используем Keycloak



Видео

1. SSO — три заветные буквы MustHave в любой архитектуре. Илья Волынкин. ArchDays 2022

2. Проектирование логики аутентификации и авторизации: cookies, JWT, SSO, OAuth 2.0

3. SSO на базе OpenId Connect в корпоративной системе

4. Технология SSO на примере SAML

5. SSO за 13 минут



#архитектура #проектирование