Перейти к основному содержимому

Провайдеры аутентификации

Помимо аутентификации по логину и паролю пользователя, заданным при регистрации в VALO Cloud, пользователи могут проходить аутентификацию с использованием внешнего провайдера идентификации (например, ЕСИА). Провайдеры аутентификации хранят данные пользователей для осуществления аутентификации и интеграции в систему: ID пользователей, пароли, имена и т. п.

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

подсказка

В настоящее время поддерживаются провайдеры, работающие по протоколу OAuth2.

Для аутентификации с использованием внешнего провайдера:

  1. Должен быть заполнен справочник провайдеров аутентификации, позволяющий пользователям пройти процедуру аутентификации с использованием того или иного провайдера.
  2. Необходимые провайдеры аутентификации должны быть добавлены в систему на этапе ее развертывания. По умолчанию в систему добавляются все известные на момент развертывания провайдеры.
  3. Справочником внешних провайдеров аутентификации может управлять технический администратор (администратор, имеющий доступ к ресурсу, с помощью которого осуществляется управление тенантами компании, тарифными опциями тенанта и другими верхнеуровневыми настройками тенанта).
  4. Атрибутный состав справочника auth_providers.
Наименование атрибутаТипЗначение обязательноЗначение по умолчанию
Идентификатор (id) *varcharДа
Тип (provider_type) **provider_typeДа
Флаг активности (is_active)booleanДаtrue
Наименование (name)varcharДа
Описание (description)varcharНет
Настройки провайдера (provider_settings) ***jsonbДа
Когда измененоtimestmapНет
  • id – представляет собой мнемонический код, позволяющий идентифицировать провайдера. Кроме того, идентификатор должен быть указан клиентской частью приложения в теле запроса на создание сессии в атрибуте “auth_provider”. Пример запроса:
curl --location --request POST 'http://localhost:8080/api/session' \
--header 'X-Tenant: tenant1' \
--header 'Content-Type: application/json' \
--data-raw '{
"data": {
"type": "sessions",
"attributes": {
"login": "user.login",
"password": "user.password",
"auth_source": "WEBSSO",
"auth_provider": "company_SSO"
}
}
}'
  • provider_type – перечисление, описывающее типы провайдеров аутентификации, представленные в системе. В текущей реализации поддерживаются провайдеры, обеспечивающие протокол OAuth2.

  • provider_settings - пример значения атрибута ‘Настройки провайдера’:

{
"client_id": "test_company_Disk",
"client_secret": "7Zw32RVvcgCvBY7Ce9JefrB7Z6AdEZ2YwFLDsy6dPJW4oc6n7xvtBchzaJqroQ103Gh",
"login_url": "https://login.company.ru/oauth2/authorize",
"redirect_uri": "https://valo_host:port/session/websso/callback",
"access_token_uri": "https://login.company.ru/amserver/oauth2/access_token",
"user_info_uri": "https://login.company.ru/amserver/oauth2/userinfo",
"response_type": "code",
"scope": "sso sub email phone profile",
"state": "",
"grant_type": "authorization_code"
}

Здесь:

  • valo_host:port – хост и порт, по которым доступно приложение VALO Cloud;
  • client_id и client_secret – учетные данные приложения VALO Cloud в рамках провайдера;
  • login_url – URL, по которому провайдером будет производиться процедура аутентификации;
  • redirect_uri – URL, по которому будет перенаправлена клиентская часть приложения после получения кода авторизации;
  • access_token_uri – URL, по которому VALO Cloud запрашивает автризацию;
  • user_info_uri - URL, по которому VALO Cloud запрашивает информацию по аутентифицирующемуся пользователю;
  • response_type = code - указывает, что VALO Cloud запрашивает предоставление кода авторизации;
  • scope – определяет пределы (атрибуты) пользователя, которые необходимы для работы в VALO Cloud;
  • grant_type – тип делегирования доступа приложению VALO Cloud.

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

Таким образом, вход в систему посредством провайдера аутентификации возможен только при выполнении следующих условий:

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