x

Үндсэн бүлгүүд

  1. LimeSurvey Cloud ба LimeSurvey CE-ийн харьцуулалт
  2. Хурдан эхлэх гарын авлага - LimeSurvey 3.0+
  3. Суулгалт - LimeSurvey CE
  4. Сайн судалгааг хэрхэн зохиох вэ (гарын авлага)
  5. Эхлэх нь
  6. LimeSurvey-г удирдах
  7. Судалгаа - танилцуулга
  8. Судалгааны тохируулга
  9. Судалгааны цэс
  10. Судалгааны бүтэц
  11. Асуултууд - танилцуулга
  12. Асуултын бүлэг - танилцуулга
  13. Судалгаа - удирдлага
  14. Судалгааны хэрэгслийн самбарын сонголтууд
  15. Олон хэлтэй судалгаа
  16. ExpressionScript Engine - Хурдан эхлэх гарын авлага
  17. Ангилагдаагүй болон нарийвчилсан боломжууд
  18. Түгээмэл асуултууд
  19. Алдаа засварлах
  20. Түр шийдлүүд
  21. Лиценз
  22. Хувилбарын өөрчлөлтүүдийн жагсаалт
  23. Плагинууд
 Actions

LDAP тохиргоо

From LimeSurvey Manual

Энэ хуудсыг машинаар орчуулсан байж магадгүй тул алдаа агуулж болзошгүй. Англи эх хувийг харах · Энэ орчуулгыг сайжруулах
This page is a translated version of the page LDAP settings and the translation is 100% complete.
  Анхааруулга : Энэ боломж нь LimeSurvey судалгааны администраторуудад LDAP-аар дамжуулан оролцогчдыг импортлох боломжийг олгодог. Хэрэв администраторуудад зориулсан LDAP нэвтрэлт танилт шаардлагатай бол AuthLDAP плагин-ийг үзнэ үү.


Ерөнхий

Энэ функцийг ашиглахын тулд config.php файлд LDAP дэмжлэгийг идэвхжүүлж, config/ldap.php файлд LDAP параметрүүдийг тохируулах шаардлагатай.

  LDAP-г ашиглахын тулд таны PHP-д LDAP модуль суулгагдсан эсэхийг шалгах хэрэгтэй. Энэ өргөтгөлийг хэрхэн суулгах талаар PHP LDAP модулийн баримт бичиг-ээс үзнэ үү.


config.php файлд LDAP-г идэвхжүүлэх

  • $enableLdap: хэрэв та LimeSurvey-д LDAP функцүүдийг ашиглахыг хүсвэл энэ параметрийг true болгож тохируулах ёстой (анхдагчаар false байна):
'config'=>array(
		'debug'=>0,
		'debugsql'=>0,
		'enableLdap'=>true,
	)

LDAP серверүүдийг тодорхойлох

Эхлээд "application/config/ldap.php" файлд LDAP серверийн холболтын сонголтуудыг тодорхойлно. Сервер бүрт дараах сонголтууд байдаг:

  • $serverId: Энэ LDAP серверийг тодорхойлох бүхэл тоо. Серверийг тодорхой асуулгад холбохын тулд асуулгын тодорхойлолтод ашиглагдана;
  • $ldap_server[$serverId]['server']: LDAP серверийн IP хаяг эсвэл DNS нэр. Хэрэв та SSL-ээр хамгаалагдсан холболт (LDAPs эсвэл LDAP+Start-TLS) ашиглаж байвал энэ нэр серверийн Certificate CN (эсвэл SubjectAlternativeName)-тэй таарах ёстой;
  • $ldap_server[$serverId]['port']: LDAP серверийн сонсдог TCP порт. Энэ нь LDAP болон LDAP+Start-TLS-д ихэвчлэн 389, LDAPs-д 636 байдаг;
  • $ldap_server[$serverId]['protoversion']: Таны серверийн дэмждэг протоколоос хамааран 'ldapv2' эсвэл 'ldapv3' байж болно. 'ldapv3' нь илүү зохимжтой протокол юм. Гэхдээ шифрлэгдсэн холболт ашиглах бол LDAPs нь 'ldapv2' горимд, харин Start-TLS нь 'ldapv3'-ын шифрлэлтийн арга болохыг анхаарна уу;
  • $ldap_server[$serverId]['encrypt']: Ашиглах шифрлэлтийн аргыг тодорхойлно. 'ldaps' нь 'ldapv2' серверүүдэд, 'start-tls' нь 'ldapv3' серверүүдэд дэмжигдэнэ. 'none' түлхүүр үг нь шифрлээгүй LDAP харилцаанд ашиглагдана;
    • 'ldaps' эсвэл 'start-tls' шифрлэлтийн үед вэб сервер LDAP серверийн сертификатыг шалгах боломжтой байх ёстойг мартаж болохгүй. Иймд openldap сангийнхаа тохиргоонд өөрийн Certificate Authority-г тодорхойлох хэрэгтэй (linux дээр үүнийг ихэвчлэн /etc/openldap/ldap.conf файлд хийдэг).
  • $ldap_server[$serverId]['referrals']: Лавлагааг (referrals) дагах эсэхийг тодорхойлох boolean параметр (ActiveDirectory-д false ашиглана);
  • $ldap_server[$serverId]['encoding']: LDAP лавлах мөрүүдийг хадгалахад ашигладаг кодчилолыг заадаг заавал биш параметр. Анхдагч кодчилол 'utf-8' нь LDAP лавлахуудын стандарт кодчилол тул ихэвчлэн энэ параметрийг тохируулах шаардлагагүй. Гэхдээ Active Directory ашиглаж, өргөлттэй тэмдэгттэй мөрүүдийг импортлоход асуудал гарвал энэ параметрийг өөрийн бүс нутагт ашиглагддаг кодчилолоор (жишээ нь Баруун Европт 'cp850') тохируулж үзээрэй. Дэмжигдсэн кодчилолын бүрэн жагсаалтыг CSV файлаас токен импортлох интерфэйсийн "Файлийн бусдаас ялгарах шинжийг тавих" жагсаалтыг доош буулгах хэсгээс харж болно.

Дараа нь лавлахад хандахад ямар нэвтрэлт танилт шаардлагатайг тодорхойлох хэрэгтэй. Хэрэв 'anonymous' хандалт зөвшөөрөгдсөн бол дараах хоёр параметрийг ТОХИРУУЛАХГҮЙ, үгүй бол тохирох утгаар тохируулна:

  • $ldap_server[$serverId]['binddn']: Лавлахыг унших эрхтэй 'LDAP' хэрэглэгчийн DN;
  • $ldap_server[$serverId]['bindpw']: Дээрх LDAP хэрэглэгчийн нууц үг.

Хэрэв өөр LDAP серверүүдийг тодорхойлох шаардлагатай бол serverID-г нэмэгдүүлэх дараах мөрийг нэмээд шинэ параметрүүдийг тодорхойлно:

  • $serverId++.

config/ldap.php файлд асуулгуудыг тодорхойлох

Анхаар: эдгээр параметрийн аль нэгэнд ldap шинж чанарын нэр шаардлагатай үед зөвхөн жижиг үсгээр бичсэн нэрийг ашиглана: жишээ нь displayname болохоос displayName БИШ.

config/ldap.php файлд жишээ тохиргоонууд байгаа тул тэр файлыг үзнэ үү.

Энгийн асуулгууд

Энгийн асуулгуудаас эхэлье. Эдгээр асуулга нь LDAP мөрүүдийг зөвхөн өөрсдийнх нь шинж чанар болон байршилд тулгуурлан шүүдэг. ActiveDirectory-г асуухад ихэвчлэн эдгээр хангалттай байдаг.

  • $query_id: LDAP асуулгын id;
  • $ldap_queries[$query_id]['ldapServerId']: Асуулгыг тодорхой серверт холбоно;
  • $ldap_queries[$query_id]['name']: Асуулгыг тайлбарласан мөр. Энэ нь GUI-д харагдана;
  • $ldap_queries[$query_id]['userbase']: Хэрэглэгч хайхад ашиглах Root DN;
  • $ldap_queries[$query_id]['userfilter']: Боломжит хэрэглэгчдийн мөрүүдийг сонгоход ашиглах шүүлтүүр. Энэ нь хаалтанд оруулагдсан байх ёстой;
  • $ldap_queries[$query_id]['userscope']: хэрэглэгчдийг LDAP-аар хайх хүрээ ('base', 'one' эсвэл 'sub');
  • $ldap_queries[$query_id]['firstname_attr']: токен мөрийн Firstname талбарт харгалзуулах Ldap шинж чанар;
  • $ldap_queries[$query_id]['lastname_attr']: токен мөрийн Lastname талбарт харгалзуулах Ldap шинж чанар;
  • $ldap_queries[$query_id]['email_attr']: токен мөрийн Е-мэйл хаяг талбарт харгалзуулах Ldap шинж чанар.

Хүсвэл лавлахаас нэмэлт мэдээлэл авч болно:

  • $ldap_queries[$query_id]['token_attr']: токен кодод харгалзуулах Ldap шинж чанар;
  • $ldap_queries[$query_id]['language']: хэрэглэгчийн Хэлний кодод харгалзуулах Ldap шинж чанар;
  • $ldap_queries[$query_id]['attr1']: attribute_1 талбарт харгалзуулах Ldap шинж чанар;
  • $ldap_queries[$query_id]['attr2']: attribute_2 талбарт харгалзуулах Ldap шинж чанар.

DN гишүүдтэй нэгдсэн группийн асуулгууд

Одоо илүү төвөгтэй асуулгыг хэрхэн тодорхойлохыг харъя.

Дараах асуулгууд эхлээд LDAP группүүдээс хайлт хийдэг. LDAP групп гэдэг нь хэрэглэгчдийн мөрүүдэд дараах хэлбэрээр лавлагаа агуулсан LDAP мөр юм:

  • хэрэглэгчийн id-ууд (жишээ нь posixGroups ийм байдаг) ==> Дараагийн хэсгийг үзнэ үү
  • Эсвэл хэрэглэгчийн DN-үүд (жишээ нь groupofnames болон groupofuniquenames ийм байдаг) ==> доороос үзнэ үү

Энд хэрэглэгчийн DN агуулсан группүүдийг авч үзнэ:

  • $query_id, $ldap_queries[$query_id]['ldapServerId'], $ldap_queries[$query_id]['name']-ийг дээр тайлбарласны дагуу тодорхойлно.

Дараа нь группийн шүүлтүүрийн параметрүүдийг тодорхойлно:

  • $ldap_queries[$query_id]['groupbase']: Группийн мөрүүдийг хайж эхлэх Root DN;
  • $ldap_queries[$query_id]['groupfilter']: Боломжит группийн мөрүүдийг сонгох LDAP шүүлтүүр;
  • $ldap_queries[$query_id]['groupscope']: Группүүдийг LDAP-аар хайх хүрээ ('one', 'base' эсвэл 'sub');
  • $ldap_queries[$query_id]['groupmemberattr']: Группийн мөр дэх хэрэглэгчдийн мөрүүдэд лавлагаа агуулах LDAP шинж чанарын нэр;
  • $ldap_queries[$query_id]['groupmemberisdn']: TRUE.

Энэ үед эхний LDAP хайлт сонгогдсон группүүдэд харгалзах хэрэглэгчдийг олох бүх зүйл тохируулагдсан байна. Гэхдээ эдгээр "хэрэглэгч нэр дэвшигчид"-ээс алийг нь сонгохыг тэдгээрт өөр шүүлтүүр хэрэглэж хязгаарлаж болно. Мэдээжийн хэрэг энэ нь заавал биш:

  • $ldap_queries[$query_id]['userbase']: Хэрэглэгчийн LDAP хайлтын Base DN (зөвхөн энэ base-д таарсан хэрэглэгч нэр дэвшигч сонгогдоно);
  • $ldap_queries[$query_id]['userscope']: Хэрэглэгчийн LDAP хайлтын хүрээ (зөвхөн userbase+scope-д таарсан хэрэглэгч нэр дэвшигч сонгогдоно);
  • $ldap_queries[$query_id]['userfilter']: Хэрэглэгч нэр дэвшигч мөр бүрт (түүний шинж чанарт) хэрэглэгдэж нэмэлт сонголт хийдэг шүүлтүүр.

UID гишүүдтэй нэгдсэн группийн асуулгууд

Одоо группийн гишүүд нь хэрэглэгчийн DN биш хэрэглэгчийн UID байх үед нэгдсэн группийн асуулгыг хэрхэн тодорхойлохыг харъя.

DN гишүүдтэй группийн асуулгуудын адил эдгээр асуулга эхлээд LDAP группийн мөрүүдийг хайж, тэдгээрийн гишүүдийг авдаг. Дараа нь эдгээр гишүүдийн утгыг хэрэглэгч хайх шүүлтүүрт ашиглан харгалзах мөрүүдийг хайдаг. Иймд хэрэглэгчийн мөр дэх ямар шинж чанар группээс олдсон гишүүний UID-тай таарахыг тодорхойлох өөр нэг параметрийг тохируулах шаардлагатай.

Шаардлагатай параметрүүдийг үзье:

  • $query_id, $ldap_queries[$query_id]['ldapServerId'], $ldap_queries[$query_id]['name']-ийг дээр тайлбарласны дагуу тодорхойлно

Дараа нь группийн шүүлтүүрийн параметрүүдийг тодорхойлно:

  • $ldap_queries[$query_id]['groupbase']: Группийн мөрүүдийг хайж эхлэх Root DN;
  • $ldap_queries[$query_id]['groupfilter']: Боломжит группийн мөрүүдийг сонгох LDAP шүүлтүүр;
  • $ldap_queries[$query_id]['groupscope']: Группүүдийг LDAP-аар хайх хүрээ ('one', 'base' эсвэл 'sub');
  • $ldap_queries[$query_id]['groupmemberattr']: Группийн мөр дэх хэрэглэгчдийн мөрүүдэд лавлагаа агуулах LDAP шинж чанарын нэр;
  • $ldap_queries[$query_id]['groupmemberisdn']: FALSE;
  • $ldap_queries[$query_id]['useridattr']: группийн гишүүдээс олдсон UID-тай таарах ёстой хэрэглэгчийн шинж чанарын нэр.

Энэ үед эхний LDAP хайлт сонгогдсон группүүдэд харгалзах хэрэглэгчдийн UID-г олох бүх зүйл тохируулагдсан бөгөөд хэрэглэгч хайх шүүлтүүр автоматаар бөглөгдөнө.

Гэхдээ гишүүдийн UID-аас автоматаар тооцоологдсон хэрэглэгчийн шүүлтүүрийг нөхөх замаар эдгээр 'хэрэглэгч нэр дэвшигчид'-ээс алийг нь сонгохыг хязгаарлаж болно. Мэдээжийн хэрэг энэ нь заавал биш:

  • $ldap_queries[$query_id]['userbase']: Хэрэглэгчийн LDAP хайлтын Base DN (зөвхөн энэ base-д таарсан хэрэглэгч нэр дэвшигч сонгогдоно);
  • $ldap_queries[$query_id]['userscope']: Хэрэглэгчийн LDAP хайлтын хүрээ (зөвхөн userbase+scope-д таарсан хэрэглэгч нэр дэвшигч сонгогдоно);
  • $ldap_queries[$query_id]['userfilter']: Хэрэглэгч нэр дэвшигч мөр бүрт (түүний шинж чанарт) хэрэглэгдэж нэмэлт сонголт хийдэг шүүлтүүр.

Active Directory-н тухайд?

Active Directory (AD) нь LDAP протоколыг ашиглан лавлагаа хийх боломжтой Microsoft-ын бүртгэл юм.

Тиймээс түүний агуулгыг LimeSurvey-н токен лавлагаанд ашиглах боломжтой боловч үүний тулд AD хэрхэн зохион байгуулагдсныг мэдэж байх шаардлагатай.

  • LDAP root base нь dc=my_windows_domain_name,dc=dns_suffix2,dc=dns_suffix1 байна

==> Жишээлбэл, таны компани 'my-company.com' DNS домэйны эзэмшигч бөгөөд таны Windows домэйн 'employees' бол root base нь dc=employees,dc=my-company,dc=com байна

  • Хэрэглэгчид болон хэрэглэгчдийн бүлгүүд cn=Users,dc=my_windows_domain_name,dc=dns_suffix2,dc=dns_suffix1 дор хадгалагддаг (энэ нь ou=users биш гэдгийг анхаарна уу);
  • Active Directory бүлгүүд:
    • Бүлгийн объектууд гишүүдийн DN-г өөрсдийн 'member' шинж чанарт агуулдаг;
    • Бүлгийн гишүүнчлэл нь хэрэглэгч бүрийн бичилтийн memberOf шинж чанарт мөн хадгалагддаг. Энэ шинж чанар нь хэрэглэгч харьяалагдаж буй бүлгүүдийн DN-г агуулна;
    • зарим бүлгүүд CN=Builtin,dc=my_windows_domain_name,dc=dns_suffix2,dc=dns_suffix1 дотор байдаг:
      • Жишээлбэл: cn=Administrator,CN=Builtin,dc=my_windows_domain_name,dc=dns_suffix2,dc=dns_suffix1;

Зарим тохиолдолд active directory-д лавлагаа хийх нь тийм амар биш байдаг тул active directory-оос зарим мэдээллийг авах тохиргооны жишээг доор үзүүлэв:

//Connection to the active directory Server:
$serverId=0;
$ldap_server[$serverId]['server'] = "10.10.10.10";
$ldap_server[$serverId]['port'] = "389";
$ldap_server[$serverId]['protoversion'] = "ldapv2";
$ldap_server[$serverId]['encrypt'] = "none"; // Most AD LDAP servers will not have encryption set by default
$ldap_server[$serverId]['referrals'] = false;
$ldap_server[$serverId]['binddn'] = "domain\\user";
$ldap_server[$serverId]['bindpw'] = "userpassword";
//$ldap_server[$serverId]['binddn'] = "CN=user,OU=user_group,DC=xxx,DC=yyy"; this one will not work with active directory, that´s why you need to use "domain\\user"
//Here is a sample query for getting all active users of an active directory:
$query_id=0;
$ldap_queries[$query_id]['ldapServerId'] = 0;
$ldap_queries[$query_id]['name'] = 'Staff with an enabled account';
$ldap_queries[$query_id]['userbase'] = 'OU=USER_GROUP,DC=xxx,DC=yyy';
$ldap_queries[$query_id]['userfilter'] = '(&(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))';
//AD has no "account is enabled" attribute, so the filter excludes accounts that have the "disabled" flag (bit 2) set in userAccountControl
$ldap_queries[$query_id]['userscope'] = 'sub';
$ldap_queries[$query_id]['firstname_attr'] = 'givenname';
$ldap_queries[$query_id]['lastname_attr'] = 'sn';
$ldap_queries[$query_id]['email_attr'] = 'mail';
$ldap_queries[$query_id]['token_attr'] = ''; // Leave empty for Auto Token generation by phpsv
$ldap_queries[$query_id]['language'] = '';
$ldap_queries[$query_id]['attr1'] = '';
$ldap_queries[$query_id]['attr2'] = '';
//You can also filter on group membership through the memberOf attribute of the user. Here is a sample query for getting all active users that are member of the group "samplegroup" in active directory:
$query_id++;
$ldap_queries[$query_id]['ldapServerId'] = 0;
$ldap_queries[$query_id]['name'] = 'All members of samplegroup';
$ldap_queries[$query_id]['userbase'] = 'OU=USER_GROUP,DC=xxx,DC=yyy';
$ldap_queries[$query_id]['userfilter'] = '(&(objectClass=user)(memberOf=CN=samplegroup,OU=Group Global,OU=USER_GROUP,DC=xxx,DC=yyy)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))';
$ldap_queries[$query_id]['userscope'] = 'sub';
$ldap_queries[$query_id]['firstname_attr'] = 'givenname';
$ldap_queries[$query_id]['lastname_attr'] = 'sn';
$ldap_queries[$query_id]['email_attr'] = 'mail';
$ldap_queries[$query_id]['token_attr'] = ''; // Leave empty for Auto Token generation by phpsv
$ldap_queries[$query_id]['language'] = '';
$ldap_queries[$query_id]['attr1'] = '';
$ldap_queries[$query_id]['attr2'] = '';

Хэрэглэгчийн лавлагааны өөр нэг жишээ:

$ldap_queries[$query_id]['userfilter'] = '(&(objectCategory=Person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'; // AD doesn't recognise enabled accounts in the normal way, so instead, we check users are not disabled
  • Цахим шуудангүй хэрэглэгчдийг алгасахын тулд хэрэглэгчийн шүүлтүүртээ (mail=*) нэмэхийг санаарай.

Бүлгийн лавлагааны жишээ:

$ldap_queries[$query_id]['groupfilter'] = '(&(objectClass=group)(cn=Domain Admins))'; // AD doesn't use the standard attribute name for groups, so use this example instead.

Active Directory-н бүлэг тус бүрт зориулж лавлагааг автоматаар үүсгэх

Хэрэв та судалгаанд оролцогчдын бүлгүүдийг нэг organizational unit (OU)-д хадгалдаг бол бүлэг бүрт лавлагаа бичих шаардлагагүй. Дараах код тухайн OU доторх бүх бүлгийг жагсааж, бүлэг бүрт нэг лавлагаа үүсгэнэ. Лавлагаа нь бүлгийн бүх идэвхтэй гишүүдийг, түүний дотор үүрлэсэн бүлгүүдийн гишүүдийг хамруулна.

Кодыг config/ldap.php файлд сервер болон лавлагааны тодорхойлолтуудын дараа, //DO NOT CHANGE BELOW HERE мөрийн өмнө нэмнэ үү. Дараа нь дээд талд байгаа дөрвөн хувьсагчийг тохируулна уу:

  • $groupServerId: ашиглах серверийн $serverId;
  • $groupContainer: бүлгүүдийг агуулж буй OU-н DN. Зөвхөн энэ OU-д шууд байгаа бүлгүүд жагсаагдах бөгөөд дэд OU доторх бүлгүүд жагсаагдахгүй;
  • $groupUserBase: бүлгийн гишүүдийг хайх root DN;
  • $groupNameAttr: GUI дээр лавлагааны нэрээр ашиглагдах бүлгийн шинж чанар (жижиг үсгээр), жишээлбэл 'info' ("Active Directory Users and Computers" дахь "Notes" талбар) эсвэл 'description'. Хэрэв бүлэгт энэ шинж чанарын утга байхгүй бол түүний cn-г ашиглана.
$groupServerId  = 0;
$groupContainer = 'OU=Survey groups,DC=xxx,DC=yyy';
$groupUserBase  = 'DC=xxx,DC=yyy';
$groupNameAttr  = 'info';

$srv = $ldap_server[$groupServerId];
$ds = ldap_connect(($srv['encrypt'] == 'ldaps' ? 'ldaps://' : 'ldap://') . $srv['server'] . ':' . $srv['port']);
if ($ds) {
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, $srv['protoversion'] == 'ldapv3' ? 3 : 2);
    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
    // Never send the bind password if Start-TLS was requested but failed
    $secure = $srv['encrypt'] != 'start-tls' || @ldap_start_tls($ds);
    $bound = $secure && (empty($srv['binddn']) ? @ldap_bind($ds) : @ldap_bind($ds, $srv['binddn'], $srv['bindpw']));
    $result = $bound ? @ldap_list($ds, $groupContainer, '(objectCategory=group)', array('cn', $groupNameAttr)) : false;
    $groups = $result ? ldap_get_entries($ds, $result) : array('count' => 0);
    for ($i = 0; $i < $groups['count']; $i++) {
        $query_id++;
        $ldap_queries[$query_id]['ldapServerId'] = $groupServerId;
        $ldap_queries[$query_id]['name'] = isset($groups[$i][$groupNameAttr][0]) ? $groups[$i][$groupNameAttr][0] : $groups[$i]['cn'][0];
        $ldap_queries[$query_id]['userbase'] = $groupUserBase;
        // Enabled users with an email address that are members of the group, directly or through nested groups
        $ldap_queries[$query_id]['userfilter'] = '(&(objectCategory=person)(objectClass=user)(mail=*)'
            . '(!(userAccountControl:1.2.840.113556.1.4.803:=2))'
            . '(memberOf:1.2.840.113556.1.4.1941:=' . ldap_escape($groups[$i]['dn'], '', LDAP_ESCAPE_FILTER) . '))';
        $ldap_queries[$query_id]['userscope'] = 'sub';
        $ldap_queries[$query_id]['firstname_attr'] = 'givenname';
        $ldap_queries[$query_id]['lastname_attr'] = 'sn';
        $ldap_queries[$query_id]['email_attr'] = 'mail';
        $ldap_queries[$query_id]['token_attr'] = '';
        $ldap_queries[$query_id]['language'] = '';
        $ldap_queries[$query_id]['attr1'] = '';
        $ldap_queries[$query_id]['attr2'] = '';
    }
    ldap_unbind($ds);
}

Анхаарах зүйлс:

  • Код нь "Оролцогчдыг дараахаас импортлох LDAP" хуудсыг нээх эсвэл илгээх бүрд лавлах руу холбогддог тул шинэ бүлгүүд тохиргоог өөрчлөхгүйгээр харагдана. Хэрэв холболт эсвэл bind амжилтгүй болбол хуудас зөвхөн таны гараар тодорхойлсон лавлагаануудыг харуулна.
  • 1.2.840.113556.1.4.1941 (LDAP_MATCHING_RULE_IN_CHAIN) тохирох дүрэм нь үүрлэсэн бүлгүүдийг шийддэг. Энэ нь зөвхөн Active Directory-д байдаг тул энэ жишээ бусад LDAP серверт ажиллахгүй. Тэдгээр дээр бүлэг бүрт combined group query-г ашиглана уу.
  • $groupContainer-н дэд OU доторх бүлгүүдийг мөн жагсаахын тулд ldap_list-г ldap_search-ээр солино уу.
  • Нэгээс олон OU-аас бүлгүүдийг жагсаахын тулд дөрвөн хувьсагчийн өөр утгуудаар кодыг давтан бичнэ үү.

Active Directory LDAP бүтцийн талаар дэлгэрэнгүй мэдээллийг Active Directory Architecture болон Active Directory Technical Specification хуудаснаас үзнэ үү.