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

Зачисление из LDAP

Расположение: ссылка «Редактировать настройки LDAP» в Администрирование > Плагины > Зачисления на курсы > Управление плагинами зачисления

Как настроить зачисление из LDAP

Здесь описывается, как настроить зачисление по протоколу Lightweight Directory Access Protocol (LDAP) в Moodle (первый автор — Ларс Йенсен). Зачисление из LDAP лучше всего работает в Moodle при использовании вместе с аутентификацией LDAP, и мы будем исходить из того, что вы уже настроили Moodle для аутентификации LDAP.

Предположения

  1. Вы используете недавнюю версию Moodle.
  2. Вы используете аутентификацию LDAP в качестве основного метода аутентификации.
  3. У каждого пользователя есть атрибут uid в записи LDAP пользователя, который соответствует «Идентификатору (ID)» в профиле пользователя Moodle (это можно легко организовать с помощью сопоставления на странице настройки аутентификации LDAP в Moodle — для Active Directory используйте 'distinguishedName', без кавычек).

Настройка курса

Наша настройка включает следующие определения курса и пользователя:

  • Два курса: Math101 и Eng201.
  • Два преподавателя: TeacherA и TeacherB.
  • Три студента: StudentD, StudentE и StudentF.
  • StudentD и StudentE зачислены в качестве студентов на курс Math101, а TeacherA зачислен в качестве преподавателя курса Math101. StudentE и StudentF зачислены в качестве студентов на курс Eng201, а TeacherA и TeacherB зачислены в качестве преподавателей курса Eng201.

Настройка контейнера LDAP

  1. Определите два контейнера LDAP: ou=StudentEnrollment и ou=TeacherEnrollment.
  2. Для каждого курса определите запись группы LDAP (например, запись posixGroup) в контейнерах StudentEnrollment и TeacherEnrollment. Таким образом, мы определяем группу Math101 posixGroup в StudentEnrollment и группу Math101 posixGroup в TeacherEnrollment. Аналогичным образом мы определяем две группы Eng201. Будьте внимательны: название posixGroup должно соответствовать идентификатору курса в Moodle. Не используйте краткое название курса, это не сработает. (Небольшое изменение названия группы в окне имени группы Windows до 2000 года позволит вам иметь две группы безопасности с одинаковым именем в MS-AD).
  3. Зачислите студентов и преподавателей в качестве участников в только что определённые группы LDAP. Это делается путём ввода атрибута uid пользователя (идентификатора) в атрибут memberUid соответствующей группы:
    • TeacherA является участником группы Math101 в TeacherEnrollment.
    • StudentD и StudentE являются участниками группы Math101 в StudentEnrollment.
    • TeacherA и TeacherB являются участниками группы Eng201 в TeacherEnrollment.
    • StudentE и StudentF являются участниками группы Eng201 в StudentEnrollment.

Настройка зачисления из LDAP в Moodle

Настройки зачисления из LDAP в Moodle, соответствующие вышеуказанной настройке, выглядят следующим образом:

Переменная зачисления из LDAP:Значение:
enrol_ldap_student_contexts: | ou=StudentEnrollment,dc=ldapserver,dc=tmcc,dc=edu
enrol_ldap_student_memberattribute:memberUid (используйте 'member' — без кавычек — для Active Directory)
enrol_ldap_teacher_contexts: | ou=TeacherEnrollment,dc=ldapserver,dc=tmcc,dc=edu
enrol_ldap_teacher_memberattribute:memberUid (используйте 'member' — без кавычек — для Active Directory)
enrol_ldap_objectclass:posixGroup (используйте 'group' — без кавычек — для Active Directory)
enrol_ldap_course_idnumber:cn
enrol_ldap_course_shortname:cn
enrol_ldap_course_fullname:cn
enrol_ldap_autocreate:Да

Кроме того, поскольку вы используете аутентификацию LDAP, вам также следует сопоставить «Идентификатор (ID)» пользователей в Moodle с «uid» в записи LDAP пользователя. Это делается на странице аутентификации LDAP в Moodle (не на странице зачисления из LDAP).

Автоматическое создание курса

Курсы могут быть созданы автоматически, если есть зачисление из LDAP на курс, которого ещё нет в Moodle. Чтобы включить это, установите enrol_ldap_autocreate в Да.

Поле enrol_ldap_category задаёт категорию для автоматически созданных курсов.

Поле enrol_ldap_template может содержать Краткое название курса, который используется в качестве шаблона при автоматическом создании курса.

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

Примечания

  1. Вам не нужно создавать курсы вручную в Moodle. Если их ещё нет, они будут созданы при первом входе зачисленного пользователя.
  2. Мы используем одну и ту же строку cn и uid в записи LDAP пользователя. Это не обязательно, я думаю. Однако, если вы используете другие значения, вам нужно будет определить ldap_user_attribute как uid в настройках аутентификации LDAP.
  3. Значение идентификатора группы (gidNumber), определённое для групп на шаге 2 настройки контейнера LDAP выше, не имеет решающего значения. Оно не используется в этой настройке.
  4. Приложенный файл .ldif предполагает, что пользователи находятся в контейнере ou=People в LDAP. Вам нужно будет настроить свою аутентификацию LDAP, чтобы отразить это (переменная ldap_contexts).
  5. Пароли пользователей для этой настройки определены в приложенном файле .ldif.
  6. Если вы используете приложенный файл .ldif, вам нужно будет отредактировать информацию о сервере LDAP (строки «dn=»).

Другая структура LDAP

Я предлагаю создать новый объект LDAP, скажем moodleCourse, который содержит всю информацию и участников курса, включая преподавателей, студентов и т. д. Например (OpenLDAP):

attributetype ( oidAttrBase:44 NAME ( 'teacherUid' ) SUP memberUid
DESC 'which person is a teacher of this course'
)

objectclass ( oidObjRoot:14 NAME 'moodleCourse' SUP top STRUCTURAL
DESC 'course available in Moodle'
MUST ( cn )
MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid )
)

Примечание: Openldap 2.x потребует что-то вроде:

attributetype ( 1.2.1.1.1.1.2.1 NAME 'teacherUid'
SUP memberUid
DESC 'which person is a teacher of this course'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

objectclass ( 1.2.1.1.1.1.1.1
NAME 'moodleCourse'
SUP top STRUCTURAL
DESC 'course available in Moodle'
MUST ( cn )
MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid )
)

Настройка выглядит так, в жирном начертании вы видите необходимые изменения, в курсивном — полезные изменения.

Переменная зачисления из LDAP:Значение:
enrol_ldap_student_contexts:ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu
enrol_ldap_student_memberattribute:memberUid
enrol_ldap_teacher_contexts:ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu
enrol_ldap_teacher_memberattribute:teacherUid
enrol_ldap_objectclass:moodleGroup
enrol_ldap_course_idnumber:cn
enrol_ldap_course_shortname:givenname
enrol_ldap_course_fullname:sn
enrol_ldap_course_summary:description
enrol_ldap_autocreate:Да

Примечание: enrol_ldap_course_idnumber (cn в моей настройке) используется для идентификации курса скриптом зачисления из LDAP, а база данных использует здесь INTEGER числовое значение, по крайней мере в Moodle v1.8. Когда вы вызываете `cd enrol/ldap/ && php