လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင်အသုံးပြုသူ authentication နှင့်ဆက်သွယ်ရန် LDAP ကိုမည်သို့အသုံးပြုရမည်နည်း

PHP တွင်အသုံးပြုသူ authentication နှင့်ဆက်သွယ်ရန် LDAP ကိုမည်သို့အသုံးပြုရမည်နည်း

gitbox 2025-06-12

1 ။ မိတ်ဆက် LDAP မှမိတ်ဆက်

LDAP (ပေါ့ပါးသော directory access protocol) သည်ဖြန့်ဖြူးသော directory 0 န်ဆောင်မှုများကိုရယူရန်နှင့်စီမံရန်အသုံးပြုလေ့ရှိသော protocol တစ်ခုဖြစ်သည်။ ၎င်းကိုကုမ္ပဏီ၏ authentication နှင့်ခွင့်ပြုချက်စနစ်များတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ ဤဆောင်းပါးသည် PHP မှတဆင့် LDAP ဆာဗာနှင့်မည်သို့ဆက်သွယ်ရမည်ကိုမိတ်ဆက်ပေးပြီးအသုံးပြုသူ authentication ကိုလုပ်ဆောင်ရန်မိတ်ဆက်ပေးလိမ့်မည်။

2 ။ LDAP ဆက်သွယ်မှု

2.1 ။ LDAP extension ကို install လုပ်ပါ

LDAP စစ်ဆင်ရေးအတွက် PHP ကိုအသုံးမပြုခင် LDAP extension ကို install လုပ်ထားကြောင်း ဦး စွာသင်ပထမ ဦး ဆုံးလုပ်ရမည်။ LDAP extension ကို PHP.INI ဖိုင်ကိုတည်းဖြတ်ခြင်းနှင့်အောက်ပါမျဉ်းကိုအချုပ်ထားခြင်းဖြင့်ဖွင့်နိုင်သည်။

extension = ldap
    

2.2 ။ LDAP ဆာဗာကိုဆက်သွယ်ပါ

LDAP ဆာဗာနှင့်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန် PHP ၏ LDap_Connect function ကိုသုံးပါ။ အောက်ပါဥပမာသည် LDAP ဆာဗာတစ်ခုနှင့်မည်သို့ချိတ်ဆက်ရမည်ကိုပြသသည်။

$ ldareserver = 'ldap.example.com';
$ ldapport = 389;
$ LDAPCONN = LDAP_Connect ($ LDASVER, $ ldapport);
    

ဤဥပမာတွင် LDAP ဆာဗာလိပ်စာနှင့် port နံပါတ်ကိုသတ်မှတ်ပြီး LDAP_Connect function ကို အသုံးပြု. LDAP ဆက်သွယ်မှုကိုဖန်တီးသည်။

3 ။ အသုံးပြုသူစစ်မှန်ကြောင်းအတည်ပြုခြင်း

3.1 ။ LDAP အုပ်ချုပ်ရေးမှူးအသုံးပြုသူကိုချည်နှောင်ခြင်း

အသုံးပြုသူစစ်မှန်ကြောင်းအတည်ပြုခြင်းမပြုမီ, နောက်ဆက်တွဲစစ်ဆင်ရေးအတွက်လုံလောက်သောခွင့်ပြုချက်များကိုသေချာစေရန်ကျွန်ုပ်တို့သည်ပုဂ္ဂလိကပိုင်အသုံးပြုသူ (LDAP administrator အဖြစ်) မှတစ်ဆင့်ခညျြနှောငျရန်လိုအပ်သည်။ စီမံခန့်ခွဲသူအသုံးပြုသူတစ် ဦး ၏ဥပမာတစ်ခုမှာဤတွင်ဖော်ပြထားသည်။

$ ldapadmin = 'cn = admin, dc = ဥပမာ,
$ ldappass = 'adminimperword';
$ ldapbind = ldap_bind ($ LDAPCONNON, $ ldapadmin, $ ldappass);
    

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် LDAP_BINT function ကို ldap connection သို့ချည်နှောင်ရန် LDAP_BINT function ကိုအသုံးပြုသည်။

3.2 ။ အသုံးပြုသူများကိုရှာဖွေပါ

ချည်နှောင်ပြီးတဲ့နောက်မှာငါတို့ LDAP_Search function မှတဆင့် LDAP လမ်းညွှန်ထဲမှာတိကျတဲ့အသုံးပြုသူများကိုရှာတွေ့နိုင်သည်။ အောက်ပါကုဒ်ဥပမာသည်သတ်မှတ်ထားသောအသုံးပြုသူအမည်ရှိအသုံးပြုသူတစ် ဦး ကိုမည်သို့ရှာဖွေရမည်ကိုပြသသည်။

$ ldapbasedn = 'DC = ဥပမာ, DC = COM';
$ searchfileter = '(uid = Johndoe)';
$ searingResult = ldap_search ($ ldapconn, $ ldapbasedn, $ searchfilter);
    

ဤဥပမာသည် UID မှတစ်ဆင့်အသုံးပြုသူတစ် ဦး ကိုရှာဖွေရန်နှင့် LDap_Search function သည်ကိုက်ညီသောရှာဖွေမှုရလဒ်ကိုပြန်ပို့သည်။

3.3 ။ အသုံးပြုသူ authentication ကိုအတည်ပြုပါ

အသုံးပြုသူအချက်အလက်များကိုရယူပြီးသည့်နောက်တွင်ကျွန်ုပ်တို့သည်အသုံးပြုသူ၏အသေးစိတ်အချက်အလက်များကို LDAP_GEget_entries function မှတစ်ဆင့်ရယူပြီး၎င်း၏ authentication ကိုသတင်းအချက်အလက်များကိုအတည်ပြုနိုင်သည်။ ဤတွင်ဆက်စပ်သောဥပမာများမှာ -

$ userinfo = ldap_get_entries ($ ldapconn, $ searingResult);
အကယ်. ($ userinfo [''] == 1) လျှင်
    $ userDn = $ userinfo [0] ['DN'];
    $ Userbind = LDAP_BIND ($ LDAPCONNON, $ userdn, $ password);
    လျှင် ($ USERBINT) {
        ECHO "အသိအမှတ်ပြုလက်မှတ်သည်အောင်မြင်သည်။ ";
    } အခြား
        ECHO "လက်မှတ်မအောင်မြင်ပါ။ ";
    }
} အခြား
    ECHO "အသုံးပြုသူမတည်ရှိပါ။ ";
}
    

အထက်ပါကုဒ်များတွင်ရှာဖွေမှုရလဒ်များကို ဦး စွာစစ်ဆေးပြီးအသုံးပြုသူတည်ရှိရန်သေချာစေပြီး LDAP_BIT မှတစ်ဆင့်သူတို့၏စကားဝှက်ကိုအတည်ပြုပါ။

4 ။ LDAP ဆက်သွယ်မှုကိုပိတ်ပါ

LDAP စစ်ဆင်ရေးပြီးဆုံးပြီးနောက်အရင်းအမြစ်များကိုအခမဲ့အခမဲ့ဆက်သွယ်ရန်ဆက်သွယ်မှုကိုပိတ်ရန်မမေ့ပါနှင့်။ ဆက်သွယ်မှုကိုပိတ်ရန် LDAP_CLOSE function ကိုသင်အသုံးပြုနိုင်သည်။

LDAP_CLOSE ($ LDAPCONNO);
    

ဤဥပမာတွင် LDAP ဆာဗာနှင့်ချိတ်ဆက်မှုကိုပိတ်ရန် LDAP_CLOSE function ကိုအသုံးပြုသည်။

5 ။ အကျဉ်းချုပ်

ဤဆောင်းပါးမှတစ်ဆင့် LDAP ဆာဗာနှင့်အသုံးပြုသူများကို authenticate အသုံးပြုသူများနှင့်ဆက်သွယ်ရန် PHP ကိုမည်သို့အသုံးပြုရမည်ကိုသင်နားလည်သင့်သည်။ ဤဆောင်းပါးသည် LDAP ကိုအသုံးပြုသူ authping ကို install လုပ်ခြင်းမှမိတ်ဆက်ခြင်းကိုမိတ်ဆက်ပေးသည်။

ထိပ်ဖ်ား: လုံခြုံရေးတိုးမြှင့်ရေးအတွက် LDAP ဆက်သွယ်မှုနှင့် authentication အတွက် encryption နည်းလမ်းများ (ထိုကဲ့သို့သော ldaps သို့မဟုတ် starttls) ကိုအသုံးပြုရန်အကြံပြုသည်။