Security

SSO

SSO (Single Sign-On) — единый вход: пользователь аутентифицируется один раз и получает доступ ко всем подключённым сервисам без повторного ввода пароля.

Что такое SSO

SSO расшифровывается как Single Sign-On — «единый вход». Пользователь один раз проходит аутентификацию у доверенного провайдера идентификации (IdP), а дальше заходит в почту, GitLab, Jira, VPN и остальные сервисы уже без ввода пароля — они спрашивают у IdP, кто это, и доверяют ответу.

Ключевое: пароль знает только IdP. Приложения его никогда не видят и не хранят — они получают подписанное утверждение «это Иванов из отдела разработки, аутентифицирован в 10:42». В этом главная ценность, а удобство — приятное следствие.

Не путать с похожими вещами:

  • SSO ≠ один и тот же пароль везде. Это ровно противоположность: при синхронизации паролей каждое приложение хранит свою копию, и утечка любого из них компрометирует всё.
  • SSO ≠ менеджер паролей.Менеджер подставляет разные пароли в разные системы, каждая по-прежнему аутентифицирует сама.
  • SSO ≠ авторизация. SSO отвечает, кто вы. Что вам можно — решают RBAC и PDP.

Как работает

1. Пользователь → App:  открываю приложение
2. App → Browser:       не знаю тебя, иди к IdP
3. Browser → IdP:       редирект
4. IdP:                 логин + пароль + 2FA (если сессии ещё нет)
5. IdP → Browser:       подписанный токен/assertion
6. Browser → App:       вот токен
7. App:                 проверил подпись IdP → впустил

Магия в шаге 4: если сессия с IdP уже есть, он не спрашивает ничего и сразу выдаёт токен. Для пользователя это выглядит как «просто зашло».

Протоколы

Протокол Формат Где применяется
SAML 2.0XML Корпоративные и legacy-системы, госсектор
OIDCJSON / JWTСовременные веб- и мобильные приложения, API
KerberosБилеты Внутри домена Active Directory, вход в Windows
CASТикеты Университеты, отдельные вузовские системы

OIDC (OpenID Connect) — надстройка над OAuth 2.0, добавляющая id_token с информацией о пользователе. Для нового проекта берут его: JSON вместо XML, нормальная поддержка мобильных клиентов, живая экосистема. SAML выбирают, когда так требует конкретная корпоративная система.

Плюсы и риски

За: один пароль вместо двадцати — люди перестают писать их на стикерах; 2FA настраивается один раз и работает везде; увольнение сотрудника отключает разом все доступы (без SSO забытая учётка в третьестепенном сервисе живёт годами); полный аудит входов в одном месте.

Против: IdP становится единой точкой отказа — лежит IdP, не работает ничего, поэтому его резервируют и мониторят как критичный сервис. И единой точкой компрометации — взлом учётки админа IdP отдаёт атакующему всю инфраструктуру. Отсюда правило: на IdP — самая жёсткая политика, аппаратные ключи FIDO2 для администраторов, отдельный мониторинг в SIEM.

Отдельная тонкость — SLO (Single Log-Out). Выход из одного приложения не всегда завершает сессии в остальных: реализация SLO у многих провайдеров хромает, а уже выданные JWT живут до истечения exp. Короткий срок жизни токенов — практический ответ.

Чем поднять

Keycloak — стандарт для self-hosted: SAML и OIDC из коробки, федерация с LDAP/AD, бесплатен. Разворачивается в Docker, в проде требует внешней БД и грамотной отказоустойчивости.

ADFS (Active Directory Federation Services) — вариант Microsoft для инфраструктур на Windows-домене. Okta, Auth0, Entra ID — облачные SaaS. В России распространены Blitz Identity Provider, Avanpost и Ideco.

Для собственной инфраструктуры удобная схема — Keycloak как IdP плюс oauth2-proxy на reverse proxy перед сервисами, у которых своей поддержки SSO нет: Prometheus, Portainer и прочие внутренние панели закрываются единым входом без правки их кода.

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер