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

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

Поставщик услуг OAuth — это внешняя система («в облаке»), которая предоставляет удостоверение личности (через сервер авторизации) и доступ к API (через сервер ресурсов), выдавая токены доступа OAuth клиенту (Moodle).
Давайте рассмотрим взаимодействие сверху вниз:
- Пользователь отправляет запрос на авторизацию; то есть пользователь входит в систему поставщика услуг через клиент. Этот шаг инициируется с помощью кнопок поставщика услуг на экране входа в Moodle.
- Сервер авторизации выдаё т код авторизации, если введённые учётные данные действительны. Как только это произойдёт, пользователь будет аутентифицирован в Moodle. Если создание учётной записи разрешено (настройка «Запретить создание учётной записи при аутентификации»), будет создана новая учётная запись. В противном случае пользователю будет предложено связать авторизацию с существующей учётной записью с тем же адресом электронной почты. Запись можно найти в разделе «Связанные логины» в настройках пользователя.
- Токен доступа будет выдан, когда пользователь войдёт в систему, используя сохранённый код авторизации. Запланирована задача для регулярного обновления токенов OAuth 2 (\core\oauth2\refresh_system_tokens_task).
- Moodle использует этот токен доступа для любых внутренних служб, которым требуется ресурс от поставщика услуг, например, ссылка на файлы в хранилище. Для некоторых внутренних служб требуется подключение системной учётной записи.
Настройка аутентификации OAuth 2
Чтобы использовать аутентификацию OAuth 2, администратор должен выполнить следующие шаги:
- Настроить службы OAuth 2: перейдите в «Администрирование сайта > Сервер > Службы OAuth 2» и следуйте инструкциям на странице Службы OAuth 2.
- Включить OAuth 2: перейдите в «Администрирование сайта > Плагины > Аутентификация», включите «OAuth 2».
- Настроить блокировку полей пользователя в OAuth 2: чтобы контролировать, какие поля данных пользователя заполняются и как, нажмите на ссылку «Настройки» и настройте «Блокировка полей пользователя».
- Запретить создание учётной записи: по умолчанию создание учётной записи разрешено. Если вы хотите запретить создание учётной записи, перейдите в «Администрирование сайта > Плагины > Аутентификация» и включите настройку «authpreventaccountcreation».
- Тестирование, тестирование, тестирование: чтобы убедиться, что ваша конфигурация OAuth 2 работает, перейдите в «Администрирование сайта > Плагины > Аутентификация» и нажмите на ссылку «Настройки тестирования» в ст роке «OAuth 2». Здесь вы можете выбрать службу и протестировать её подключение.
Для следующих функций Moodle требуется служба OAuth2:
- Хранилища: хранилище Dropbox, хранилище Google Drive, Microsoft хранилище OneDrive и хранилище Nextcloud
- Портфолио: портфолио Google Drive
- Значки: Open Badges 2.1
- Почта: входящая и исходящая настройка почты
- Конвертеры документов: конвертер Google Drive