Обзор
Федерация позволяет пользователям аутентифицироваться в MWS с использованием учетных данных из стороннего сервиса. Это обеспечивает единый вход (Single Sign-On, SSO) для пользователей без создания отдельного аккаунта в MWS. С помощью федерации можно входить в MWS, например, с использованием аккаунта Active Directory.
Сторонний сервис, который хранит учетные данные пользователя, называется поставщиком удостоверений или IdP (Identity Provider). Пользователь, который аутентифицируется через IdP, а не через аккаунт в MWS, называется федеративным.
Преимущества федераций:
- Упрощение регистрации на платформе: пользователи могут пользоваться ресурсами и сервисами MWS без регистрации, входя в веб-консоль по SSO.
- Возможность группировать пользователей по различным признакам: для каждой группы можно создать отдельную федерацию. Например, одна федерация — для сотрудников организации, вторая — для групп пользователей.
- Гибкое управление доступом к ресурсам облака: вы можете назначать роли как всем пользователям федерации, так отдельным пользователям или группам пользователей.
Федерации создаются на уровне организации. В одну федерацию можно добавить несколько IdP. При необходимости в организации можно создать несколько федераций.
Поддерживаемые IdP
MWS взаимодействует с поставщиками удостоверений на базе протокола OpenID Connect с аутентификацией по коду подтверждения (authorization code flow).
Для корректной работы федерации с вашим IdP:
- IdP должен быть доступен из интернета.
- Время ответа на запросы на получение и валидацию токена не должно превышать 10 секунд. В противном случае запрос считается невалидным.
Пользовательские атрибуты
После аутентификации IdP предоставляет атрибуты с информацией о пользователе. В документации некоторых IdP атрибуты обозначаются терминами claims или assertions.
Набор атрибутов задается на стороне IdP и при необходимости может быть расширен. При настройке OIDC-клиента вы можете указать способ получения атрибутов:
- ID Token: атрибуты берутся только из JWT-токена в момент его получения;
- ID Token и Userinfo endpoint: после получения информации из JWT-токена выполняется также запрос дополнительных атрибутов в
/userinfo.
Аутентификация через федерацию
Чтобы войти в веб-консоль MWS, пользователю нужно перейти по ссылке с идентификатором федерации.
Процесс аутентификации состоит из следующих этапов:
Инициация входа. Пользователь открывает веб-консоль MWS через браузер. MWS проверяет наличие валидного сессионного cookie.
Проверка сессии. Если cookie существует и не истек срок его действия, MWS пропускает этап аутентификации, а пользователь получает доступ к веб-консоли. Если cookie отсутствует или срок его действия истек, запускается процесс федеративной аутентификации.
Перенаправление на сервер IdP. Параметры перенаправления включают:
client_id— идентификатор MWS в IdP;redirect_uri— URL для возврата после аутентификации;state— уникальная строка (например, случайный UUID), используемая для защиты от атак типа CSRF (Cross-Site Request Forgery).
Аутентификация на стороне IdP. В браузере пользователя открывается форма входа IdP, и пользователь выполняет необходимые для аутентификации действия, например, вводит логин и пароль. После успешной аутентификации создается подписанный JWT-токен, который содержит:
- идентификатор пользователя (
sub); - идентификатор MWS в IdP (
aud); - время выпуска и срок действия;
- электронную почту и имя пользователя.
Проверка токена. MWS получает токен через
redirect_uriи проверяет:- подпись;
- срок действия;
- соответствие
audиспользованному при перенаправленииclient_id; - значение параметра
state.
Создание сессии. После успешной проверки MWS создает сессию пользователя и устанавливает сессионный cookie в браузере. Пользователь перенаправляется в консоль MWS. Сессия остается активной до истечения срока действия токена или до выхода пользователя из веб-консоли.