Услуги OAuth 2
Услуги OAuth 2
- Moodle поддерживает услуги OAuth 2 (или «Эмитент»), которые могут использоваться любым плагином для предоставления аутентифицированного доступа к внешним службам либо от имени текущего пользователя, либо с использованием системной учётной записи.
- Услуги OAuth 2 используются, например, для предоставления функции «Войти через Google/Microsoft/Facebook» на странице входа, а затем для обмена этой аутентифицированной сессией с хранилищами, такими как Google Drive и OneDrive, без необходимости повторной аутентификации.
- Услуги OAuth 2 могут использоваться плагинами, даже если они не используются на странице входа, и можно войти в несколько служб одновременно.
Вход
Смотрите Аутентификация OAuth 2 для подробностей о том, как включить эту функцию.
Open ID Connect
Open ID Connect — это стандарт для служб входа OAuth 2, который упрощает настройку рабочей системы вход а. Если настраиваемая вами служба соответствует требованиям Open ID Connect, вам нужно будет только ввести базовый URL для службы, а Moodle обнаружит всю остальную необходимую информацию, запросив «документ обнаружения», который должен существовать по адресу
Настройка эмитента
Сначала несколько терминов: в этих сценариях Moodle является «клиентом», а удалённая служба (Google, Facebook, ...) — «эмитентом» или «поставщиком». Чтобы настроить услуги OAuth 2, перейдите в Администрирование сайта > Сервер > Сервер > Услуги OAuth 2. [[File:OAuth - Services.png|border|center|frameless|900x900px|
]]Внизу вы увидите всех поддерживаемых поставщиков услуг. Выберите соответствующую кнопку, чтобы добавить предварительно настроенную службу, которая направит вас к форме для создания новой службы. Спецификации службы уже заполнены — всё, что вам нужно сделать, это добавить ID клиента и пароль клиента соответствующего поставщика услуг.
Как получить ID клиента и пароль?
ID клиента и пароль предоставляются эмитентом, поэтому вам нужно настроить их вне Moodle, у эмитента. Инструкции для известных поставщиков услуг OAuth 2 приведены по ссылкам ниже.
- Служба Google OAuth 2
- Служба Microsoft OAuth 2
- Служба Facebook OAuth 2
- Служба Nextcloud OAuth 2
- Служба MoodleNet OAuth 2
- Служба Open Badges OAuth 2
- Служба LinkedIn OAuth 2
- Служба Clever OAuth 2
Для п ользовательских служб вам нужно будет узнать, как получить ID клиента и пароль. Эмитент должен быть настроен с соответствующим URL перенаправления для Moodle, который имеет вид
Добавление эмитента
Если возможно, используйте одну из предварительно настроенных служб, если ваша среди них. Вы всё равно сможете настроить отдельные параметры позже.
Выберите из списка, затем появятся следующие настройки:
Как правило, не изменяйте никакие настройки, кроме Имени, ID клиента, Пароли клиента и Базового URL службы, если только и нструкции по установке не посоветуют вам это сделать. В остальном значения по умолчанию обычно подходят, особенно если вы используете одну из предварительно настроенных служб. Смотрите Расширенные настройки эмитента (ниже), чтобы получить пояснения к некоторым настройкам.
Домены входа
При желании добавьте сюда список доменов, разделённых запятыми, для которых будет ограничен вход при использовании этого провайдера.
Это ограничение будет применяться в дополнение к разрешённым и запрещённым настройкам доменов электронной почты в Управлении аутентификацией, однако последние проверяются только при создании пользователя и не проверяются снова при входе пользователя в систему.
Дополнительные параметры настройки
После создания эмитента справа от службы отображаются дополнительные параметры настройки. Обычно для предварительно настроенных служб никаких изменений не требуется.
Редактировать: снова перейдите на экран настроек.
Настроить конечные точки: определите конечные точки эмитента, т. е. URL, к которым будет подключаться Moodle. Следующие конечные точки обязательны для аутентификации пользователя: authorization_endpoint, token_endpoint и userinfo_endpoint. (Пример изображения ниже).
Настроить сопоставления полей пользователя: если вы используете эмитента в качестве поставщика удостоверений, вы можете настроить, как ответ поставщика (из userinfo_endpoint) должен сопоставляться с полями пользователя Moodle. Вам следует настроить сопоставления для внутренних названий полей firstname, lastname и email, чтобы пользователь был полностью настроен при входе в систему, поскольку эти поля обязательны в Moodle. Если какое-либо из этих полей не сопоставлено, пользователь будет перенаправлен на страницу Редактирования информации и ему будет предложено ввести недостающую информацию. (Пример изображения ниже).
Удалить: удалить конфигурацию эмитента.
Отключить: отметить эмитента как отключённого; плагины не могут их использовать.
Переместить вверх/вниз: изменить порядок, в котором службы перечислены на странице входа.


Подключение системной учётной записи
Может быть подключена системная учётная запись. Она может потребоваться плагинам для предоставления дополнительных функций, таких как ссылки с контролем доступа из хранилища Nextcloud, хранилища Google Drive или хранилища OneDrive.
Чтобы подключиться к системной учётной записи, нажмите значок «Подключить» (полуоткрытая коробка со стрелкой), затем выберите соответствующую учётную запись.
Системная учётная запись должна быть выделенной учётной записью, предназначенной только для этой цели. Системной учётной записи не требуется, чтобы к ней был привязан адрес электронной почты. Системная учётная запись не требуется для функции входа в систему.

Обновление токена доступа
Существует запланированная задача для регулярного обновления токена OAuth для системных учётных записей, Обновить токены OAuth для системных учётных записей (\core\oauth2\refresh_system_tokens_task). Если по какой-либо причине токен не может быть обновлён, например, если истекает срок авторизации, все администраторы Moodle будут уведомлены.
Если пользователь с правами администратора не хочет получать эти уведомления, это можно настроить на странице Настройки уведомлений. Опцию уведомления для деактивации — Важные ошибки на сайте.
Внимание: пользователь, отключивший уведомление Важные ошибки на сайте, может не получать другую важную информацию, связанную с ошибками сайта. Например, пользователь не будет получать электронные письма о результатах антивирусной проверки или любые уведомления, отправленные из стороннего плагина, который использует базовую службу сообщений errors. В настоящее время с помощью этого поставщика сообщений отправляется не так много уведомлений; к сожалению, нет способа их перечислить, поэтому рекомендуется проверить уведомления, которые были получены ранее, и те, которые получены после отключения уведомления.