Kirish ma’lumotlari o‘tadi, tunnel ko‘tarila boshlaydi, so‘ngra sessiya parol haqida emas, guruh haqidagi xabar bilan muvaffaqiyatsiz tugaydi. Bu birikma xatoni LDAP plaginining ishining ikkinchi yarmiga joylashtiradi: bog‘lanish va parol tekshiruvi muvaffaqiyatli o‘tdi, undan keyingi a’zolik qarori esa o‘tmadi. Ikkala yarm ham bir xil konfiguratsiya blokidan o‘qiydi, shuning uchun bir joydagi tuzatish ikkinchisini tegilmagan qoldirishi mumkin. Bosqichni nomlaydigan jurnal satridan boshlang, tasodifan sinab ko‘rayotgan hisobingizdan emas.

Rad etishni avtorizatsiya javobi deb qabul qiling

Plagin xizmat bog‘lanishini amalga oshiradi, hisobni qidiradi, berilgan parolni tekshiradi va keyin bu hisob ruxsat etilgan guruhga tegishlimi, deb so‘raydi. Bu to‘rtta alohida amal, va faqat oxirgisi guruhlarga tegishli. Shuning uchun muvaffaqiyatli bog‘lanishdan keyin keladigan rad etish parol haqida hech narsa demaydi, mijoz umumiy autentifikatsiya xatosini ko‘rsatsa ham. Konfiguratsiyani o‘zgartirishdan oldin plagin jurnal darajasini ko‘tarish chiqishda o‘sha to‘rttasini ajratadi.

Guruh baholanishining o‘zini qidiring. Guruh so‘rovi umuman ko‘rinmasa, avtorizatsiya blokiga yetib borilmaydi, bu odatda ko‘rsatma o‘ziga tegishli blokdan tashqarida turganini yoki majburiy parametr yetishmayotganini bildiradi. So‘rov ko‘rinib, hech narsa qaytarmasa, oxirgi nuqta yoki filtr siz nazarda tutganingizdan boshqa savolga javob bermoqda.

A’zolik filtrda yashaydimi yoki guruh blokida, hal qiling

Qo‘llab-quvvatlanadigan ikki shakl bor va ularni aralashtirish ishlab turgan konfiguratsiyaning ishlashdan to‘xtash yo‘lidir. Birinchisi foydalanuvchi obyektidagi atributni so‘rab a’zolikni foydalanuvchi qidiruviga suradi; ikkinchisi foydalanuvchi qidiruvini o‘z holicha qoldiradi va plaginga keyinroq guruh obyektini qidirishga ruxsat beradi. Har bir joylashtirish uchun bittasini tanlang va qaysinisini tanlaganingizni yozib qo‘ying.

<Authorization>
    BaseDN       "OU=People,DC=example,DC=org"
    SearchFilter "(&(sAMAccountName=%u)(memberOf=CN=VPN Access,OU=Groups,DC=example,DC=org))"
    RequireGroup false
</Authorization>

Bu shaklda hamma narsani filtr hal qiladi, shuning uchun RequireGroup false bo‘lishi kerak, aks holda plagin filtr hech qachon tilga olmagan guruh obyektini qidirishga ketadi. Filtrdagi atribut foydalanuvchi obyektida mavjud va to‘ldirilgan bo‘lishi kerak, guruhlar ichma-ich bo‘lgach bunga kafolat yo‘q.

Boshqa shakl qidiruvni sodda saqlaydi va undan keyin guruh qidiruvini qo‘shadi. Guruh obyekti aniq nomlanadi va plagin foydalanuvchini katalog uning uchun qaytaradigan a’zolar bilan taqqoslaydi. Foydalanuvchi filtrida hech narsa o‘zgarmaydi, bu esa guruhni boshqa jamoa boshqarganda ushbu shaklni tekshirishni osonlashtiradi.

<Authorization>
    BaseDN       "OU=People,DC=example,DC=org"
    SearchFilter "(sAMAccountName=%u)"
    RequireGroup true
    Group        "CN=VPN Access,OU=Groups,DC=example,DC=org"
</Authorization>

Ko‘r nuqta umumiy: oddiy a’zolik taqqoslash ichma-ich guruhlarni ochmaydi, shuning uchun kirishi ota-ona guruh orqali keladigan hisob muvaffaqiyatsiz bo‘ladi, konsol esa hanuz a’zolikni ko‘rsatadi. Active Directory guruhda member atributini ochib beradi, boshqa sxemalar uniqueMember dan foydalanadi va noto‘g‘ri atributga ishora qilish xato o‘rniga bo‘sh natija qaytaradi.

Guruh obyektini saqlovchi oxirgi nuqtani tanlang

URL plagin qaysi katalogdan so‘rashini hal qiladi va 389 portidagi domen boshqaruvchisi faqat o‘z nomlash kontekstiga javob beradi. 3268 portidagi global katalog butun o‘rmonga javob beradi, faqat o‘qish rejimida va qisman atributlar to‘plami bilan. Hisoblar bir domenda, VPN guruhi boshqasida bo‘lsa, bitta domen so‘rovi foydalanuvchini topib, a’zolikni baribir o‘tkazib yuborishi mumkin. URL ni katalog portiga ko‘chirish rad etishni hal qiladigan holat shu, va odamlar haddan tashqari umumlashtiradigan holat ham shu.

Qisman atributlar to‘plami — chegara: katalog saqlamaydigan atribut bo‘yicha filtrlash mumkin emas, shuning uchun bir xil o‘zgarish bir joylashtirishni ishlatib, boshqasi hech narsa qaytarmasligi mumkin. Blokni qayta yozishdan oldin oxirgi nuqta haqiqiy foydalanuvchi va guruh uchun aslida nima qaytarishini tasdiqlang. Yo‘naltirishlar va TLS yana alohida masalalar, chunki yo‘naltirishga rioya qilish kerak va TLS talab qiladigan oxirgi nuqtaga mos ishonch fayllari kerak.

Hisob holati va qidiruv qamrovini o‘z maydonlarida saqlang

O‘chirish bayrog‘i filtrga tegishli, guruh tekshiruviga emas. Active Directory da bu userAccountControl atributining ikkinchi biti va bu shart bo‘lmasa amaldagi parolga ega o‘chirilgan hisob autentifikatsiyadan o‘tib, keyin guruh bosqichida muvaffaqiyatsiz bo‘ladi, bu esa avtorizatsiya xatosiga o‘xshaydi. Qidiruv qamrovi bazaviy DN ga tegishli, chunki domen ildizidan boshlash sekinroq va qamrab olmoqchi bo‘lgan tashkiliy birlikdan tashqari obyektlarga mos kelishi mumkin.

Bog‘lanish hisobining huquqlarini ham tor saqlang. Keng katalog huquqlari noto‘g‘ri sozlangan filtrni muvaffaqiyatli so‘rovga aylantiradi va kimdir hisobni audit qilmaguncha xatoni yashiradi. A’zolikni katalogning o‘zida o‘zgartiring, hech qachon mahalliy istisnolar ro‘yxatida emas, shunda kirishni olib tashlash uchun hisobni o‘chirish kifoya bo‘ladi. Agar guruhni boshqa jamoa boshqarsa, unga filtr yozishdan oldin ular to‘ldiradigan atribut haqida kelishing.

Natijani uchta hisob bilan isbotlang

Konfiguratsiyani uchta shaxsga qarshi ishga tushiring: ruxsat etilgan a’zo, guruhdan tashqari amaldagi hisob va o‘chirilgan hisob. Agar uchtasi ham rad etilsa, bog‘lanish yoki guruh so‘rovi buzilgan; agar uchtasi ham qabul qilinsa, hech qanday guruh sharti qo‘llanmayapti. Aralash natija faqat siz uchun muhim holatlarni konfiguratsiya ajratishini isbotlaydigan natijadir.

Plaginni ayblashdan oldin o‘sha uch javobni to‘g‘ridan-to‘g‘ri katalogdan o‘qing. Birinchi so‘rov filtr tayanadigan guruh atributini, ikkinchisi esa hisobni boshqarish qiymatini ko‘rsatadi. O‘z bazaviy DN, hisob va oxirgi nuqtangiz bilan almashtiring:

ldapsearch -H ldap://dc01.example.org:3268 -x -D "[email protected]" -W -b "DC=example,DC=org" "(sAMAccountName=alice)" memberOf
ldapsearch -H ldap://dc01.example.org:3268 -x -D "[email protected]" -W -b "DC=example,DC=org" "(sAMAccountName=bob)" userAccountControl

memberOf bo‘sh qaytadigan foydalanuvchi katalog fakti, plagin xatosi emas, va o‘chirilgandan keyin ham autentifikatsiyadan o‘tadigan hisob filtrda hisobni boshqarish sharti yo‘qligini bildiradi. Avval o‘sha dalilni tuzating, so‘ng uch hisobli testni qayta ishga tushiring. Muvaffaqiyatsiz bosqichni nomlagan jurnal satrini konfiguratsiya o‘zgarishi yonida saqlang, shunda keyingi odam qidiruvni takrorlamasdan avtorizatsiyani autentifikatsiyadan ajrata oladi.

O'xshash maqolalar