LDAP เป็นโปรโตคอลที่ทำงานร่วมกับ Directory Service ซึ่งจะเป็นตัวกลางในการติดต่อระหว่าง Directory Client และ DirectoryServerให้มีการทำงานอย่างสะดวกรวดเร็วและลดปัญหาการติดต่อกันในหลายๆแพล็ทฟอร์มที่มีระบบการทำงานที่แตกต่าง
กันโดยมีการนำข้อมูลเข้าหรือออกจากไดเร็คทอรี่ด้วยไฟล์ LDIF(LDIFจะเป็นไฟล์ที่รักษาระบบความปลอกภัยได้ดีในการเข้าถึง
ส่วนต่าง ๆ ของ Directory Server)
LDAP จะใช้โปรโตคอล OSI Networkในการติดต่อสื่อสารและมีการทำงานอยู่ในโปรโตคอล TCP/IP เพื่อการเข้ารหัสของ Directory Client ในการนำข้อมูล เข้า –ออก จาก Directory ได้ง่ายและมีความปลอดภัยสูง
หน้าที่การทำงานของ Directory Server ใน LDAP
DirectoryServerในโปรโตคอลLDAPนี้จะมีระบบการทำงานที่เป็นการบริหารงานจากส่วนกลางในส่วนกลางนี้จะมีการแบ่งหน้าที่
การทำงานอกเป็นส่วน ๆ (เปรียบเทียบได้กับสมุดหน้าเหลืองที่มีการเก็บข้อมูลไว้เป็นหมวดหมู่) เมื่อผู้ใช้ (Client หลาย ๆ เครื่อง) ต้องการเข้ามาใช้งานในส่วนที่ต้องการ LDAP Server ก็จะกระจายข้อมูลไปให้ Client ได้อย่างรวดเร็ว เมื่อClient ต้องการค้นหาข้อมูลก็สามารถทำได้อย่างสะดวกรวดเร็วได้เช่นกันจะเห็นได้ว่าDirectoryจะทำงานคล้ายกับฐานข้อมูลที่มีการจำกัด
ชนิดของข้อมูลที่จะทำการเก็บลงใน Directory ข้อมูลที่จะทำการเก็บลงจะต้องมีการตรวจสอบความถูกต้องด้วย แต่ความจริงแล้ว Directory มีความแตกต่างจากฐานข้อมูลตรงที่ Directory จะมีการใช้งานอย่างไม่จำกัดเตรียมรับกับสถานการณ์ที่ Client เข้ามาใช้งานมาก ๆ เครื่อง Server ที่ให้การบริการอยู่ก็สามารถรองรับการทำงานได้ จะเห็นได้ว่าในปัจจุบันนี้ในองค์กรต่าง ๆ ได้มีการนำ Directory Server มาใช้กันอย่างแพร่หลาย เพราะสามารถควบคุมการเข้าใช้งานในระบบต่าง ๆ ในการเข้าถึงข้อมูลของ Server รวมถึงการรักษาความปลอดภัย แต่ Directory Server จะเหมาะกับงานที่มีการอ่านมากกว่าการบันทึกข้อมูล Directory จึงออกแบบมาให้สามารถรองรับการทำงานจาก Client ได้หลาย ๆ แพลทฟอร์ม ได้พร้อม ๆ กัน
ขั้นตอนการทำงานของ LDAP
LDAP จะทำงานแบบ Client/Server โดยทาง Client จะมีการลงโปรแกรมไว้ เมื่อต้องการข้อมูลจาก Server ก็จะทำการส่ง Request โดยจะผ่านโปรโตคอล TCP/IP เมื่อทาง Server ได้รับ Request แล้ว จะทำการประมวลผลตามที่ Client ต้องการ และส่ง Result กลับไปให้ Client LDAP ไม่เพียงแค่ทำงานแบบ Client/Server เท่านั้น ยังสามรถทำงานแบบ Messages-Oriented ได้อีก โดยที่ Message –Oriented หมายถึง การติดต่อสื่อสารระหว่าง Client-Server ที่จะมีการส่ง Messages เป็น Request ไปยัง Server และเมื่อ Server ได้รับก็จะส่ง Result กลับมาในรูปของ Message ไปให้ Client เราจะเรียกการส่งแบบนี้ว่า “ Series Ldap Message <p>================================================================================</p><p>
</p><p>
เริ่มต้นการทำงานของ Ldap
การติดตั้ง Ldap sever
ทางฝั่ง Server ทำการติดตั้งโปรแกรมดังนี้
openldap
openldap-clients
openldap-devel
nss_ldap
openldap-servers</p><p>
โดยใช้คำสั่ง
rpm –I openldap-2.0.27-11.i386.rpm
rpm -I openldap-clients-2.0.27-11.i386.rpm
rpm -I openldap-devel-2.0.27-11.i386.rpm
rpm -I nss-ldap-2.0.27-11.i386.rpm
rpm -I openldap-server-2.0.27-11.i386.rpm
จากนั้นสร้างไดเร็กทอรี่สำหรับเก็บข้อมูล (สร้างที่ใดก็ได้) โดยใช้คำสั่ง
[root@Lab522-21]# mkdir / moo.com
[root@Lab522-21]# chown ldap:ldap /moo.com
คือการสร้างไดเร็กทอรี่ชื่อ moo ตามด้วยการเปลี่ยน Owner เป็น moo</p><p>ทำการเข้ารหัสผ่านของ root โดยใช้ slappasswd
[root@Lab522-21]# slappasswd
New password:
Re-enter new password:
{SSHA}v4qLq/qy01w9my60LLX9BvfNUrRhOjQZ
[root@ Lab522-21]#
เมื่อใช้คำสั่ง slappasswd จะให้ใส่ Password และ Re-enter new password จากนั้นจะปรากฏ {SSHA}v4qLq/qy01w9my60LLX9BvfNUrRhOjQZ คือรหัสที่คีย์ที่เราต้องนำไปใช้สร้าง Directory
เข้าไปแก้ไข ไฟล์ slapd.conf โดยเพิ่มข้อมูลดังนี้
เข้าไปที่ vi /etc/openldap/slapd.conf
และแก้ไขข้อมูลดังนี้
database ldbm (เป็นชนิดของฐานข้อมูล ldbm)
suffix “dc=moo,dc=com” (domain components ชื่อ moo.com)
rootdn “cn=Manager,dc=moo,dc=com” (common name ชื่อ Manager )
rootpw {SSHA}v4qLq/qy01w9my60LLX9BvfNUrR (รหัสของการเข้ามาแก้ไข)
directory /moo.com (ที่เก็บข้อมูล /moo.com )
สั่งให้ Ldap เริ่มทำงาน โดยใช้คำสั่ง service ldap start ถ้าปรากฏ Starting slapd: [ OK ]
นั่นหมายความว่า สามารถทำงานได้</p><p>ต้องการสร้างผู้ใช้ ใช้คำสั่ง
[root@ Lab522-21]# useradd -g users mek
[root@ Lab522-21]# passwd mek
Changing password for user mek.
New password:
Retype new password:
passwd: all authentication updatedsuccessfully.
[root@ Lab522-21]#
คือการกำหนดให้ผู้ที่สามารถเข้ามาใช้งานได้ ชื่อ mek และใส่รหัสผ่านที่สามารถเข้ามาใช้งานที่ Sever ได้
ทำการนำ Password ของผู้ใช้มาสร้างเป็นไฟล์ใหม่สำหรับ Ldap /etc/passwd ของ user
โดยใช้คำสั่ง
[root@Lab522-21]# grep mek /etc/passwd > /etc/openldap/passwd.mek
[root@ Lab522-21]# grep root /etc/passwd > /etc/openldap/passwd.root</p><p>การสร้าง User ผ่านไฟล์ .ldif
[root@Lab522-21]# /usr/share/openldap/migration/migrate_passwd.pl
/etc/openldap/passwd.mek /etc/openldap/mek..ldif
[root@ Lab522-21]# /usr/share/openldap/migration/migrate_passwd.pl
/etc/openldap/passwd.root /etc/openldap/root.ldif</p><p>
การแก้ไขไฟล์ LDIF โดยใช้ %s/padl/moo/g
คือการเปลี่ยนทุก ๆ ตำแหน่งในส่วนของ dc ให้เป็น moo
พร้อมทั้งเปลี่ยน ที่อยู่ข้างล่าง UID เป็น Manager
โดยเข้าไปแก้ไขไฟล์ใน vi /etc/openldap/moo.com.ldif </p><p>==========================================================================</p><p>dn: dc=moo,dc=com
dc: moo
description: Root LDAP entry for moo.com
objectClass: dcObject
objectClass: organizationalUnit
ou: rootobject
dn: ou=People, dc=moo,dc=com
ou: People
description: All people in organisation
objectClass: organizationalUnit</p><p>==========================================================================</p><p>บันทึกไฟล์ Ldif ลงในฐานข้อมูล
[root@Lab522-21]# ldapadd -x -D “cn=Manager,dc=moo,dc=com”
-W -f /etc/openldap/moo.com.ldif
[root@ Lab522-21]# ldapadd -x -D “cn=Manager,dc=moo,dc=com”
-W -f /etc/openldap/root.ldif
[root@ Lab522-21]# ldapadd -x -D “cn=Manager,dc=moo,dc=com”
-W -f /etc/openldap/mek.ldif</p><p>ทดลองค้นหาข้อมูล
root@ Lab522-21]# ldapsearch -x -b ‘dc=moo,dc=com’ ‘(objectclass=)’</p><p>การติดตั้ง Ldap Client
ทางด้าน Client ทำการติดตั้งโปรแกรมดังนี้
openldap
openldap-clients
openldap-devel
nss_ldap
เข้าไปแก้ไขไฟล์ /etc/openldap/ldap.conf
โดยเปลี่ยนส่วนของ Host และส่วนของ Base เป็น
HOST 172.19.2.20
BASE dc=moo,dc=com
เพื่อให้ชี้ไปยังเครื่องของ Server และให้ค้นหาข้อมูลที่ ไฟล์ moo
เข้าไปแก้ไขไฟล์ /etc/nsswitch.conf โดยเข้าไปที่ /usr/bin/authconfig จะปรากฏ </p><p>
</p><p>
ให้ใส่ * ในส่วนของ [] Use Shadow Passwords
[] Use MD5 Passwords
[] Use LDAP
และกำหนดหมายเลข IP ของ server ที่จะติดต่อ
[ ] Use TLS
Server: 172.19.2.20
Base DN: dc=moo,dc=com
คือติดต่อที่ หมายเลข IP ของ Server ในไฟล์ชื่อ moo.com</p><p>ตรวจสอบการทำงานของUser โดยใช้คำสั่ง
grep mek /etc/passwd </p><p>ทำการสร้าง ที่เก็บของ user โดยใช้คำสั่ง
[root@Lab522-20]# mkdir /home/mek </p><p>ทำการเปลี่ยน Permission ของ user โดยใช้คำสั่ง
[root@Lab522-20]# chmod 700 /home/mek/ </p><p>ทำการเปลี่ยนผู้ใช้ เป็น mek
chown mek:users /home/mek/ </p><p>ดูไฟล์ในส่วนของ Home โดยใช้คำสั่ง ll /home </p><p>
</p><p>และการ copy ข้อมูลมาเก็บไว้ที่ส่วนของผู้ใช้
[root@Lab522-20]# cp /etc/skel/. /home/mek/
ทำการเปลี่ยนกลุ่มของ user
chown mek:users /home/mek/.* </p><p>ใช้คำสั่งค้นหาข้อมูลของผู้ใช้
ldapsearch -x -b ‘dc=example,dc=com’ ‘(objectclass=)’</p><p>// การเพิ่มผู้ใช้ใหม่</p><p>vi /usr/local/bin/addldapuser
=============================================================================
#!/bin/bash
- grep $1 /etc/passwd > /tmp/changeldappasswd.tmp
- /usr/share/openldap/migration/migrate_passwd.pl
/tmp/changeldappasswd.tmp /tmp/changeldappasswd.ldif.tmp
- cat /tmp/changeldappasswd.ldif.tmp | sed s/padl/moo/ > /tmp/changeldappasswd.ldif
- ldapadd -x -D “cn=Manager,dc=moo,dc=com” -W -f
/tmp/changeldappasswd.ldif
- rm -f /tmp/changeldappasswd.*</p><p>=============================================================================</p><p>Chmod 700 /usr/local/bin/addldapuser
useradd -g users mint
[root@ Lab522-21]# addldapuser mint
Enter LDAP Password:
adding new entry “uid=mint,ou=People,dc=moo,dc=com”
// การลบ users</p><p>vi /usr/local/bin/deleteldapuser
=============================================================================
#!/bin/bash
ldapdelete -x -W -D “cn=Manager,dc=moo,dc=com”
“uid=$1,ou=People,dc=moo,dc=com”
=============================================================================
chmod 700 /usr/local/bin/deleteldapuser
[root@ Lab522-21]# deleteldapuser mintEnter LDAP Password:
[root@ Lab522-21]#</p><p>//การเปลี่ยนรหัสผ่านของ users
vi /usr/local/bin/modifyldapuser </p><p>============================================================================
#!/bin/bash
- grep $1 /etc/passwd > /tmp/modifyldapuser.tmp
- /usr/share/openldap/migration/migrate_passwd.pl
/tmp/modifyldapuser.tmp /tmp/modifyldapuser.ldif.tmp
- cat /tmp/modifyldapuser.ldif.tmp | sed s/padl/moo/ > /tmp/modifyldapuser.ldif
- ldapmodify -x -D “cn=Manager,dc=moo,dc=com” -W -f /tmp/modifyldapuser.ldif
- rm -f /tmp/modifyldapuser.
============================================================================</p><p>chmod 700 /usr/local/bin/modifyldapuser </p><p>Ldap Modify</p><p>
คำสั่ง ldapmodify เป็นคำสั่งที่มีการทำงานเหมือนกับคำสั่ง Ldapadd ที่ทำการเพิ่ม User หรือ Entry ต่าง ๆ ใน Directory Server เช่น o, ou , cn , uid เป็นต้น และ ldapModify สามารถใช้เปลี่ยนแปลงแก้ไขเฉพาะ Object หรือ
Attribute ได้
Option ของ LapModify ประกอบด้วย</p><table border="1" cellspacing="0" cellpadding="0" width="90%" bordercolor="#339900"><tbody>
ต้องกำหนด changetype add ไว้ในส่วนหัวของ LDIF
</tbody></table><p> </p><p>Ldapdelete
Delete เป็นคำสั่งที่ใช้ลบ user หรือ Entry ออกจากไดเร็คทอรี่เซอร์เวอร์
Option ldapdelete ประกอบด้วย</p><table border="1" cellspacing="0" cellpadding="0" width="90%" bordercolor="#339933"><tbody>
</tbody></table><p>
Ldap Search
Option ของ ldapsearch ประกอบด้วย </p><table border="1" cellspacing="0" cellpadding="0" width="90%" bordercolor="#339900"><tbody>
</tbody></table><p> </p><p>===========================
ผู้จัดทำ
นาย สุเมฆ วิลาจันทร์
นางสาว หรรษา ธรรมดีกุล
============================
ที่มา : http://www.cs.bru.ac.th/modules.php?name=News&file=article&sid=86&mode=thread&order=0&thold=0 </p><hr width="100%" size="2"><p></p>
ไว้ลองลงบ้าง :-)
บดความดีมากครับ ผมต้องการ ถ่าย user ใน Ldap ไป windowd AD ครับ ขอคำแนะนิดครับ
บทความอ่านแล้วเข้าใจดีมาก ขอชม
อยากให้มีการเผยแพร่มากขึ้น
ขอบคุณมากครับ บทความดีมากๆ ***************************
ใช้ดีจึงบอกต่อ Free http://www.ruyrew.com “รู้แล้ว..Dictionary online แปลภาษา แปลศัพท์ แปลไทย แปลอังกฤษ แปลได้ทุกที่ แปลเร็วมาก Free http://ruyrew.com “รู้แล้ว..Dictionary online แปลภาษา แปลศัพท์ แปลไทย แปลอังกฤษ แปลได้ทุกที่ แปลเร็วมาก”
เข้ามาเยี่ยมอ่ะ
เยี่ยมมากๆ ครับ แต่รูปไม่แสดงนะครับ ไม่รู้คนอื่นๆ เห็นรูปไหมครับ