Открыть сервис

Modern Auth

Modern Auth (современная аутентификация) — это собирательное понятие, обозначающее набор протоколов, технологий и архитектурных принципов для проверки подлинности пользователей и предоставления им доступа к ресурсам в распределённых, облачных и мобильных средах. В отличие от классических методов аутентификации (например, на основе пароля или Kerberos в домене Windows), Modern Auth ориентирована на работу с внешними сервисами, сторонними приложениями и устройствами, не привязанными к корпоративной сети. Ключевые особенности — использование токенов доступа, поддержка многофакторной аутентификации (MFA), единого входа (SSO) и протоколов OAuth 2.0, OpenID Connect (OIDC) и SAML 2.0. Термин получил широкое распространение после внедрения Microsoft в 2016 году в Office 365 и Azure Active Directory, хотя технически концепция существовала и ранее.

История

Предпосылки возникновения

До середины 2010-х годов доминирующим подходом к аутентификации в корпоративных системах была классическая аутентификация (Legacy Auth). Она основывалась на протоколах NTLM, Kerberos и базовой аутентификации HTTP. Основные недостатки:

С развитием облачных сервисов (SaaS, IaaS, PaaS) и мобильных технологий возникла потребность в едином механизме аутентификации, работающем через интернет и поддерживающем разные типы клиентов (браузеры, мобильные приложения, серверные службы).

Внедрение Microsoft

Ключевым событием, популяризовавшим термин «Modern Auth», стало объявление Microsoft в 2016 году о переходе на новые протоколы в Office 365 и Azure Active Directory. Компания начала поэтапно отключать поддержку Basic Auth для Exchange Online, SharePoint Online и Skype for Business Online. Вместо этого были внедрены:

Это позволило реализовать единый вход (SSO), многофакторную аутентификацию (MFA) и условный доступ (Conditional Access) на уровне платформы.

Стандартизация

Параллельно с усилиями Microsoft, международные организации (IETF, OpenID Foundation) продолжали развивать открытые стандарты. OAuth 2.0 (RFC 6749, 2012 год) и OpenID Connect (2014 год) стали основой Modern Auth. SAML 2.0, разработанный OASIS в 2005 году, остаётся актуальным для федеративных сценариев, но постепенно вытесняется более лёгкими протоколами.

Протоколы и технологии

OAuth 2.0

OAuth 2.0 — протокол делегированного доступа, позволяющий приложению (клиенту) получить ограниченный доступ к ресурсам пользователя на стороннем сервере без передачи учётных данных пользователя. Основные роли:

Ключевые элементы:

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

OpenID Connect (OIDC)

OpenID Connect — надстройка над OAuth 2.0, добавляющая слой аутентификации. Вводит понятие ID Token (JWT), который содержит информацию о пользователе (claims): имя, email, идентификатор, время аутентификации. OIDC является основным протоколом для SSO в современных веб- и мобильных приложениях.

SAML 2.0

SAML 2.0 (Security Assertion Markup Language) — более старый протокол на основе XML, используемый в корпоративных федерациях (например, ADFS, Okta). Поддерживает SSO и обмен атрибутами. Несмотря на громоздкость, остаётся востребованным в legacy-системах и государственных инфраструктурах (например, ЕСИА в России).

WebAuthn / FIDO2

WebAuthn (Web Authentication) — стандарт W3C для беcпарольной аутентификации с использованием криптографических ключей (например, USB-ключи YubiKey, биометрия). Входит в спецификацию FIDO2. Позволяет отказаться от паролей, заменив их асимметричной криптографией.

Архитектурные принципы

Токенизация

В Modern Auth аутентификация и авторизация разделены. Пользователь проходит аутентификацию на сервере, получает токен (JWT), который затем предъявляет каждому ресурсу. Токен содержит claims (утверждения) о пользователе и его правах. Сервер ресурсов проверяет подпись токена и не требует повторной аутентификации.

Единый вход (SSO)

SSO реализуется через центральный сервер аутентификации (Identity Provider, IdP). Пользователь входит один раз, после чего IdP выдаёт токены для всех подключённых сервисов. Примеры: Azure AD, Okta, Keycloak.

Многофакторная аутентификация (MFA)

Modern Auth поддерживает MFA на уровне протокола. Сервер может запросить дополнительный фактор (код из SMS, push-уведомление, биометрию) при попытке доступа к чувствительным ресурсам или при подозрительной активности.

Условный доступ (Conditional Access)

Политики условного доступа позволяют динамически изменять требования к аутентификации в зависимости от контекста: местоположение, устройство, риск, время. Например, при входе из ненадёжной сети может потребоваться MFA.

Применение

Корпоративные системы

Мобильные приложения

Мобильные клиенты используют OAuth 2.0 с PKCE (Proof Key for Code Exchange) для безопасного получения токенов. ADAL/MSAL на платформах Android и iOS.

Государственные и банковские системы

В России Modern Auth используется в Единой системе идентификации и аутентификации (ЕСИА) для портала «Госуслуги», а также в Единой биометрической системе (ЕБС). Протоколы — SAML 2.0 и OAuth 2.0.

Интернет вещей (IoT)

Для устройств с ограниченными ресурсами используется OAuth 2.0 Device Authorization Grant (RFC 8628), позволяющий аутентифицировать устройство через браузер на другом устройстве.

Критика и ограничения

Сложность реализации

Протоколы OAuth 2.0 и OIDC имеют множество опций (grant types, scopes, claims), что приводит к ошибкам в реализации. Часто встречаются уязвимости: неправильная проверка redirect URI, незащищённое хранение refresh token, отсутствие PKCE.

Зависимость от IdP

При отказе центрального сервера аутентификации (IdP) все подключённые сервисы становятся недоступны. Требуется высокая доступность IdP и резервирование.

Управление токенами

Токены JWT не могут быть отозваны до истечения срока действия, если не используется механизм чёрных списков. Refresh token может быть украден, что даёт злоумышленнику постоянный доступ.

Приватность

IdP получает информацию о всех сервисах, которые использует пользователь (через redirect). Это может быть проблемой для конфиденциальности.

Перспективы развития

Беcпарольная аутентификация

WebAuthn и FIDO2 постепенно вытесняют пароли. Ожидается, что к 2025–2027 годам большинство крупных сервисов предложат опцию входа без пароля.

Децентрализованная идентификация (DID)

Проекты на основе блокчейна (например, Sovrin, uPort) предлагают модель, где пользователь сам управляет своими идентификаторами, а не полагается на центрального IdP.

Постквантовая криптография

С развитием квантовых компьютеров алгоритмы, используемые в JWT (RSA, ECDSA), могут быть взломаны. Разрабатываются постквантовые схемы подписи (например, CRYSTALS-Dilithium).

Источники

  1. RFC 6749 — The OAuth 2.0 Authorization Framework (IETF, 2012).
  2. OpenID Connect Core 1.0 Specification (OpenID Foundation, 2014).
  3. SAML V2.0 Technical Overview (OASIS, 2005).
  4. WebAuthn: Web Authentication API (W3C, 2019).
  5. Microsoft Docs: Modern Authentication for Office 365 (Microsoft, 2016).
  6. FIDO2: WebAuthn & CTAP (FIDO Alliance, 2018).
  7. RFC 8628 — OAuth 2.0 Device Authorization Grant (IETF, 2019).
  8. ЕСИА: Техническая документация (Минцифры РФ, 2023).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →