В этой статье мы разберем, что такое SSO, где применяется и посмотрим на пример технической реализации для веб-приложений.
Single Sign-On или SSO - технология единого входа, позволяет пользователям использовать одни учетные данные для бесшовного доступа ко всем требуемым сервисам.
Чтобы лучше понять принцип работы SSO, разберем использование на паре примеров:
Представьте, что вы работаете в компании, в которой используются различные приложения - почтовый клиент, трекер задач, корпоративный мессенджер и т.д. Каждое приложение требует аутентификации пользователей. Без SSO пользователи должны вводить для каждого приложения отдельно свой логин и пароль. Более того, для целей информационной безопасности, пароли должны различаться, чтобы при утечке одного из паролей, злоумышленники не могли получить доступ к остальным сервисам.
При использовании SSO сотрудник может войти всего один раз в рабочую операционную систему. После этого, для использовании корпоративных приложений аутентификация не требуется, т.к. используется учетная запись, с которой он вошел в ОС. Аутентификация и авторизация доступа для каждого сервиса, конечно, производится, но происходит совершенно незаметно для пользователя.
Еще один вариант использования - клиентские сервисы. Допустим, вы являетесь клиентом компании, которая предоставляет несколько сервисов - например, доставка продуктов, онлайн-кинотеатр и банк. Без использования SSO вы должны были отдельно входить в каждый сервис, несмотря на то, что они принадлежат одной организации. При использовании SSO вы входите один раз и не важно в какое приложение - банк или доставку продуктов. После входа в один сервис вас бесшовно аутентифицирует в любом другом сервисе компании.
Рассмотрим пример реализации SSO на примере веб приложений одной организации.
Примерная архитектура изображена на рисунке ниже
SSO состоит из двух компонентов - сервис аутентификации и шлюз авторизации.
Шлюз развернут перед сервисами, развернутыми в домене example.org.
Примерный сценарий аутентификации пользователя:
Еще одним вариантом реализации является аутентификация по протоколу Kerberos. Такой подход используется внутри корпоративной сети. При использовании Kerberos пользователи могут получить доступ к корпоративным приложениям, используя свою доменную учетную запись, как это было описано в примере выше.
Если корпоративные приложения не поддерживают Kerberos аутентификацию, сервис SSO может аутентифицировать пользователей самостоятельно и передавать информацию о сессии пользователя в такие приложения через шлюз авторизации.
Внедрение Single Sign-On - большой шаг к упрощению работы пользователей и повышению безопасности. SSO минимизирует неудобства, связанные с многократной аутентификацией, и предоставляет компаниям инструменты для централизованного управления доступом. SSO помогает создать бесшовный и защищенный опыт взаимодействия с клиентскими или корпоративными приложениями. В условиях роста количества цифровых сервисов внедрение SSO становится не просто удобством, а необходимостью для организаций.