home

Moodle, ELiS и Single Sign-On (SSO)

При встраивании защищенных учебников в Moodle может потребоваться, чтобы пользователь Moodle был авторизован и в ELiS. При этом хочется, чтобы пользователь не авторизовался отдельно на разных порталах, а вводил логин и пароль только один раз. Данная задача решается реализацией технологии единого входа (single sign-on).

Для ELiS задачу можно решить с помощью бесплатного модуля CAS для Drupal и соответствующей настройки плагина CAS в Moodle, входящего в стандартную поставку.

Технически схема работы будет следующая:

  • пользователь открывает сайт Moodle и нажимает кнопку авторзиации;
  • Moodle перенаправляет пользователя на сайт ELiS, где он вводит логин и пароль;
  • при успешном вводе логина и пароля, пользователь перенаправляется на сайт Moodle с тикетом, по которому Moodle также обращается в ELiS и узнает его логин без дополнительных действий со стороны пользователя;

Настройка ELiS[править]

Установите модуль CAS и в списке серверов активируйте CAS Server.

Настройте модуль CAS Server, добавив две строчки, которые являются URL адресом сайта Moodle и любых его URL, например:

https://moodle.example.com
https://moodle.example.com/*

elis_cas_server_configuration.png

Настройка ELiS закончена.

Настройка Moodle[править]

В плагинах аутентификации активируется CAS.

Введите название сервера (например: elis.example.com), номер порта (например: 443) и базовый адрес CAS-провайдера (например: cas/).

moodle_cas_server_configuration.png

Настройка Moodle закончена.

Замечания по назначению групп пользователей[править]

ELiS может сообщить группы (роли) пользователя в атрибутах CAS по запросу https://elis.example.com/cas/serviceValidate?service=sameService&ticket=ST-a3Hbe2Knup:

 <cas:serviceResponse>
   <cas:authenticationSuccess>
     <cas:user>ivanov</cas:user>
     <cas:attributes>
       <cas:attraStyle>Jasig</cas:attraStyle>
       <cas:uid>23427</cas:uid>
       <cas:mail>ivanov@example.com</cas:mail>
       <cas:created>1467123997</cas:created>
       <cas:timezone>Asia/Karachi</cas:timezone>
       <cas:language/>
       <cas:drupal_roles>authenticated user</cas:drupal_roles>
     </cas:attributes>
   </cas:authenticationSuccess>
 </cas:serviceResponse>

Но модуль CAS в Moodle не подхватывает группы, сообщаемые сервером ELiS. Для настройки групп, в Moodle требуется настроить получения групп из LDAP-сервера организации. Для реализации единой точки входа, в таком случае, рекомендуется также и ELiS настроить на авторизацию пользователей из LDAP с помощью бесплатного модуля ldap.