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

Аутентификация внешних приложений

Платформа Corat OAuth2 Server/Client

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


Вы можете разрешить внешним приложениям использовать Corta в качестве провайдера аутентификации при условии, что они поддерживают протоколы OAuth2/OIDC.

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


Токен доступа имеет короткий срок действия и должен обновляться автоматически. Токен доступа действителен в течение 2 часов, а токен обновления — в течение 3 дней.

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

Настройка платформы Corta


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



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


Клиент аутентификации включает в себя:

  • Комбинацию идентификатора клиента (client ID) и секрета клиента (client secret) (идентификатор клиента находится в адресной строке URL),
  • Список областей (scopes) для ограничения доступа на основе используемого клиента аутентификации,
  • Список URI перенаправления (redirection URIs), которые могут быть использованы с методом предоставления авторизационного кода (authorization code grant),
  • Флаг доверия (trusted flag), который заставляет пользователей подтверждать аутентификацию,
  • Срок действия клиента аутентификации, основанный на дате.

Убедитесь, что вы выбрали соответствующий тип предоставления (grant type) в зависимости от вашего сценария использования.


Настройка внешних приложений


Скопируйте параметры, полученные от клиента аутентификации, в ваше внешнее приложение. Идентификатор клиента (client ID) — это длинное число в конце URL-адреса.


Жизненный цикл аутентификации

Сессия в системе аутентификации Corta отличается от сессии в клиентском приложении. Такое разделение позволяет использовать сессию Corta для авторизации дополнительных клиентов.


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

Примечания по безопасности

Используйте HTTPS с действующими SSL-сертификатами.


Формы и конечные точки аутентификации защищены от атак методом перебора (brute-force) и атак на основе межсайтовых запросов (cross-site request attacks). Вы также можете задать собственные секреты для шифрования значений JWT, CSRF и cookie.


Для временных и постоянных сессий могут быть установлены разные сроки действия в соответствии с требованиями политики безопасности вашей организации.

Советы по отладке

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

  • Идентификатор клиента (client ID) и секрет клиента (client secret) должны совпадать

  • Хотя бы один из URI перенаправления клиента (redirect URIs) должен совпадать (по префиксу)

  • Поток предоставления (grant flow) клиента должен совпадать

  • Область действия (scope) клиента должна совпадать (запрошенные области должны пересекаться с областями, указанными для клиента)

  • Пользователь, авторизующий клиента, должен обладать ролью, которая позволяет авторизовать данного клиента

  • Пользователь должен быть действительным (подтвержденный email, не заблокирован и не удален)