Русский
  • sso
  • аутентификация
  • идентичность

Почему единый вход (SSO) лучше

Единый вход (SSO) — это отличный способ упростить модель аутентификации и улучшить пользовательский опыт для каждого приложения. Вот почему.

Gao
Gao
Founder

Единый вход (SSO) — это технология, которая позволяет пользователям пройти аутентификацию один раз и получить доступ к нескольким приложениям. Если у вас только одно приложение, это может показаться излишним. Однако начало работы с SSO с самого начала может избавить вас от множества головных болей в будущем, а внедрение SSO проще, чем вы думаете.

Прежде чем начать, нужно отметить, что существует два типа SSO:

  • Первый тип — это когда у вас есть несколько приложений, которые используют одну и ту же базу данных пользователей. Этот тип SSO мы будем обсуждать в данной статье.
  • Второй тип — это когда у вашего клиента есть централизованный поставщик удостоверений (IdP), и вам нужно интегрироваться с ним. Это выходит за рамки данной статьи.

Почему SSO?

Упростить модель аутентификации

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

По мере роста бизнеса вы решаете добавить приложение для управления магазином, чтобы владельцы могли управлять своими магазинами. Теперь у вас два приложения, которые должны аутентифицировать пользователей.

Вот несколько вариантов:

1. Вы можете создать отдельную базу данных пользователей для приложения управления магазином.

Это самое простое решение, но это значит, что вам придется реализовать процесс аутентификации для приложения управления магазином, и пользователям нужно будет создавать новую учетную запись для использования приложения.

2. Вы можете использовать одну и ту же базу данных пользователей для обоих приложений.

Это лучшее решение, так как пользователям не нужно создавать новую учетную запись. Однако вам все еще нужно реализовать процесс аутентификации для приложения управления магазином.

3. Вы можете использовать SSO.

Это лучшее решение на данный момент. Вам не нужно реализовывать другой процесс аутентификации, и пользователям не нужно создавать новую учетную запись для приложения управления магазином. Кроме того, вы можете добавлять новые приложения и методы входа без изменения модели аутентификации или пользовательского опыта.

Улучшить пользовательский опыт

SSO улучшает пользовательский опыт двумя способами:

  • Пользователи могут использовать одну и ту же учетную запись в нескольких приложениях.
  • Когда пользователи входят в одно приложение, им не нужно повторно входить в другие приложения на одном устройстве.

Здесь могут возникнуть некоторые опасения, но все они решаемы.

1. Как различать приложения?

Единый вход не означает, что мы одинаково относимся ко всем приложениям. В хорошо известном открытом стандарте OpenID Connect каждое приложение называется клиентом, и потоки аутентификации различаются в зависимости от типа клиента. Хотя конечные пользователи не должны знать о различиях, тип клиента важен для аутентификационного сервера, чтобы определить поток аутентификации.

2. Что если пользователи не хотят использовать одну и ту же учетную запись?

Это обоснованное опасение, но это не проблема с SSO. Если пользователи не хотят использовать одну и ту же учетную запись, они могут создать новую учетную запись для нового приложения. Главное — дать пользователям возможность выбора.

3. Что если мне нужно ограничить доступ к определенным приложениям?

На самом деле, SSO — это техника аутентификации, тогда как контроль доступа — это авторизация. SSO может быть отделено от контроля доступа. Например, вы можете использовать SSO для аутентификации пользователей, а затем использовать контроль доступа на основе ролей (RBAC), чтобы ограничить доступ к определенным приложениям или ресурсам.

Чтобы узнать больше об аутентификации и авторизации, ознакомьтесь с CIAM 101: Authentication, Identity, SSO.

4. SSO требует перенаправления пользователей на сервер аутентификации.

Перенаправление — это стандартная практика для аутентификации. Учитывая пользовательский опыт, мы можем использовать различные техники, чтобы уменьшить трение:

  • Используйте обновляемые токены, чтобы сократить частоту аутентификации.
  • Инициализируйте процесс аутентификации с помощью определенного метода входа, такого как Google или Facebook, чтобы уменьшить количество кликов.
  • Используйте тихую аутентификацию чтобы ускорить процесс аутентификации.

Повысить безопасность

1. Центральное место для всех операций, связанных с безопасностью

SSO позволяет управлять всеми операциями, связанными с безопасностью, в одном месте. Например, как мы упоминали в предыдущем разделе, SSO может по-прежнему различать приложения и применять платформенно-специфичные потоки аутентификации для каждого приложения. Без SSO вам нужно реализовывать различные потоки аутентификации в зависимости от типа приложения.

Кроме того, такие расширенные функции безопасности, как многофакторная аутентификация (MFA), легче реализовать с SSO, не запутав модель аутентификации.

2. Уменьшение поверхности атаки

Теоретически, SSO уменьшает поверхность атаки, так как вам нужно обеспечить безопасность только одного сервера аутентификации вместо нескольких приложений. Централизованный подход также упрощает мониторинг и обнаружение подозрительной активности.

3. Проверенные временем стандарты и протоколы

Открытые стандарты и протоколы, такие как OpenID Connect и OAuth 2.0, широко используются в индустрии и проверены временем. Оба они соответствуют концепции SSO и поддерживаются большинством поставщиков удостоверений (IdP). Комбинируя эти стандарты с SSO, вы можете создать безопасную и надежную систему аутентификации.

Ладно, давайте реализуем SSO

Реализация SSO может быть крупной и сложной задачей, есть множество вещей, которые следует учитывать, такие как:

  • Соответствие стандартам и протоколам
  • Потоки аутентификации для различных типов клиентов
  • Несколько методов входа
  • Функции безопасности, такие как MFA
  • Пользовательский опыт
  • Контроль доступа

Каждая из этих тем может стать отдельной статьей и казаться подавляющей. Для простоты лучше начать с управляемой службы, которая предоставляет SSO из коробки. Наш продукт Logto является такой службой, и ее интеграция в ваше приложение займет всего несколько минут.

Одной из наиболее распространенных опасений использования управляемой службы является зависимость от поставщика. К счастью, это не проблема с Logto. Logto построен на основе OpenID Connect и OAuth 2.0 и изначально является открытым исходным кодом. Мы приоритетом ставим предоставление уверенности нашим клиентам и стремимся дать вам свободу выбора.