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

Аутентификация OAuth 2

Обзор​


OAuth 2.0 — это фактически отраслевой стандартный протокол для авторизации пользователей. Аутентификация через OAuth 2 позволяет пользователям входить в YooLearn с помощью кнопок на странице входа, используя учётные данные популярных сервисов, таких как Google, Microsoft, Facebook и LinkedIn.

OAuth_Login.png

Следующий процесс высокоуровневого взаимодействия демонстрирует, как работает аутентификация OAuth 2 в контексте YooLearn:

OAuth_-_Service_Provider_Authentication.png

Поставщик OAuth-услуг — это внешняя система («в облаке»), которая предоставляет:

  • аутентификацию (через сервер авторизации)
  • доступ к API (через сервер ресурсов)

Для этого система выдаёт клиенту (YooLearn) OAuth-токены доступа. Разберём процесс по шагам:

  1. Запрос авторизации
    Пользователь отправляет запрос на авторизацию, то есть входит в систему поставщика услуг через клиент (YooLearn). Этот шаг запускается при нажатии кнопки поставщика услуг на экране входа YooLearn.
  2. Получение кода авторизации
    Если введённые данные верны, сервер авторизации выдаёт код авторизации. После этого:
    • Пользователь аутентифицируется в YooLearn.
    • Если включено создание учётных записей, будет создан новый аккаунт.
    • Если создание отключено, пользователю предложат привязать авторизацию к существующему аккаунту с таким же email.
    • Запись появится в разделе "Связанные логины" в настройках пользователя.
  3. Выдача токена доступа
    При последующих входах система использует сохранённый код авторизации для выдачи токена доступа. Для автоматического обновления токенов в YooLearn есть задача по расписанию: /core/oauth2/refresh/_system_tokens_task.
  4. Использование токена
    YooLearn применяет токен доступа для работы с внутренними сервисами, которым нужны ресурсы поставщика (например, ссылки на файлы в хранилище). Некоторые сервисы требуют подключения системного аккаунта.

Настройка аутентификации OAuth 2​


Для использования аутентификации OAuth 2 администратор должен выполнить следующие шаги:

  1. Настройка сервисов OAuth 2: Перейдите в раздел "Администрирование" → "Сервер" → "Службы OAuth 2" и следуйте инструкциям на странице Службы OAuth 2.
  2. Включение OAuth 2: Перейдите в "Администрирование" → "Плагины" → "Настройки аутентификации" и активируйте OAuth 2.
  3. Блокировка полей пользователя в OAuth 2: Чтобы управлять заполнением определённых полей данных пользователя, нажмите на ссылку "Настройки" и настройте "Блокировка полей пользователя".
  4. Запрет создания аккаунтов: По умолчанию создание аккаунтов разрешено. Если необходимо его отключить, перейдите в "Администрирование" → "Плагины" → "Аутентификация" и включите параметр "Предотвратить создание учетной записи при аутентификации".
  5. Тестирование: Чтобы проверить работу OAuth 2, перейдите в "Администрирование" → "Плагины" → "Аутентификация", найдите строку OAuth 2 и нажмите "Проверка настроек". Здесь можно выбрать сервис и протестировать подключение.

Функции YooLearn, требующие OAuth 2:


Оригинал: https://docs.moodle.org/502/en/OAuth_2_authentication