“ LDAP ”
รู้จักกับ LDAP
Lightweight
Directory Access Protocol ( LDAP นิยมอ่านว่า "แอล-แด็ป") เป็น Protocol ที่พัฒนามาจาก Protocol X. 500
ซึ่งใช้ในการเข้าถึงและ Update ข้อมูลของ Directory ซึ่ง Directory ในทาง Computer ที่จริงก็อาจเรียกได้ว่าเป็น Database แบบพิเศษหรือ Data
repository ที่บรรจุรายละเอียดของ Object ต่างๆ
เช่น Users, Application, Files, Printer และอื่นๆ รวมทั้ง Security
information ของ Object เหล่านี้ด้วย
โดยข้อแตกต่างของ Directory กับ Database ปกติ
LDAP มีโครงสร้างคล้ายกับระบบแฟ้มข้อมูลแบบลำดับขั้นของ
UNIX (UNIX hierarchical file system) โดยมีการเรียกในแต่ละลำดับชั้นดังนี้
root คือ
ส่วนบนสุดของระบบ สามารถใส่ข้อมูลได้
node คือ ส่วนย่อยๆ ออกมาจาก root สามารถใส่ข้อมูล และบาง
node มี child nodes หรือ node ย่อยๆ ลงไปอีกได้ เป็นลำดับขั้นเพื่อบันทึกข้อมูลที่แตกต่างกันไป
เรื่องของความสัมพันธ์เป็นแบบย้อนหลัง ( backwards
) เช่น การอ่านชื่อจากซ้ายไปขวา สามารถอ่านได้จาก entry ล่างขึ้นไปด้านบน
แสดงโครงสร้างของ LDAP
การอ่าน
Directory
Information Tree ( DIT ) ตัวอย่างเช่น พนักงานมี 2 คน คือ Chakrit Pha-In และ Rujirapong
Ritwong ซึ่งเป็น cn= Common Name โดย Chakrit
Pha-in ทำงานอยู่ในฝ่าย Sale ซึ่ง
ou = Organization Unit ทำงานอยู่ในสาขาที่ประเทศ
USA คือ c=usaโดย c=Country ในองค์กรหรือบริษัท คือ o=SOFTNIX ส่วน Rujirapong
Ritwong ทำงานอยู่ในแผนก Technical ในสาขาประเทศไทย
ในองค์กรหรือบริษัท
จากความหมายและภาพที่กล่าวมาแล้ว
สามารถเขียนเป็นโครงสร้างแบบของ LDAP ได้ดังนี้
Cn=Chakrit Pha-in
OU=Sale
C=USA
o=SOFTNIX
Cn=Rujirapong Ritwong
OU=Technical
C=Thailand
o=SOFTNIX
LDAP
Attribute
จากที่กล่าวมาในข้างต้นโครงสร้างของ
LDAP
มีอยู่หลาย Node ด้วยกัน ในแต่ละ Node จะมี Attribute ซึ่งเรียกว่า Entry Attribute
โดย Entry Attribute นี้จะแบ่งออกเป็น Attribute
Type และ Attribute Value ตัวอย่างเช่น
Attribute Type =
mail
Attribute Value = example@Softnix.com
นั้นหมายความว่าการเก็บรายละเอียดต่างๆ
ภายใน LDAP
จะถูกกำหนดข้อมูลลงใน Attribute ต่างๆ
การออกแบบ Attribute ต่างๆ นั้น ก็สามารถออกแบบขึ้นคล้ายๆ
การออกแบบฐานข้อมูลเชิงสัมพันธ์นั้นเอง สำหรับ LDAP การออกแบบ
Attribute เพื่อให้เหมาะแก่การใช้งานด้านต่างๆ
แสดงตัวอย่างโครงสร้างของ LDAP
ข้อแตกต่างระหว่าง
Directory และ Database
Directory คือ List ของข้อมูลซึ่งมีการจัดลำดับและมีรายละเอียดปลีกย่อยต่างๆ
ลงไปอีก เช่น สมุดโทรศัพท์ก็ถือว่าเป็น Directory เพราะในสมุดโทรศัพท์จะมีชื่อ
รายนาม และเบอร์โทร หรืออาจจะมีเบอร์เพจเจอร์
ซึ่งสมุดโทรศัพท์เราจะลำดับตามรายชื่อผู้ใช้งาน
Directory เป็น Database พิเศษแต่ไม่ใช่ Database เพราะ Directory สร้างขึ้นมาเพื่อมีลักษณะเฉพาะบางอย่าง
เพิ่มขึ้นมา และมีบางส่วนเหมือน Database ลักษณะที่สำคัญของ Directory
คือ สร้างมาเพื่อเน้นการเข้าถึง (Read, Search) แต่ไม่ได้ทำมาสำหรับการ Update (Write) บ่อย ๆ เช่น
ข้อมูลเบอร์โทรของคนอาจจะมีคนเข้ามาค้นหาวันละเป็นพันครั้ง ดังนั้น Directory
จึงเหมาะสำหรับการค้นหาบ่อย ๆ แต่การ Update จะเป็นหน้าที่ของ
Admin หรือเจ้าของข้อมูลนั้นเองชึ่งมีเพียงไม่กี่คนที่สามารถ
Update ได้
Directory มีลักษณะการทำงานในการเก็บข้อมูลการเปลี่ยนแปลงไม่บ่อย ( Static
Data ) ไม่เหมาะกับการเก็บข้อมูลที่เปลี่ยนแปลงบ่อย ( Dynamic
Data ) เช่น ข้อมูลของ Printer ความสามารถในการ
Print ควรเก็บไว้ใน Directory แต่ Job
Queue ของ Printer ที่มีการเปลี่ยนแปลงบ่อยไม่ควรเก็บไว้ใน
Directory
ข้อมูลใน Directory
บางครั้งอาจเป็นข้อมูลที่ไม่ถูกต้อง (ในแง่ของผู้ใช้ ไม่ใช่ระบบ)
เช่น ที่อยู่ของคนอาจไม่ถูกต้องเพราะคนคนนี้ย้ายที่อยู่ไปแล้ว
ดังนั้นไม่ควรเก็บข้อมูลที่ Sensitive ( เช่น ยอด Balance
ของบัญชี ) เอาไว้ที่ Directory
การใช้
Database
เก็บข้อมูลของ Application เช่น
การเก็บข้อมูลของลูกค้าในระบบ Billing เมื่อเราเพิ่มระบบอื่นเข้าไปเช่น
Mail ทำให้ Admin ยุ่งยากอาจจะต้องเพิ่ม
Column เข้าไปในตารางที่เก็บข้อมูลลูกค้า แต่ถ้าใช้ Directory
จะง่ายต่อการ Extend
Database จะใช้ SQL แต่ Directory จะมีภาษาที่ต่างไปและจะช่วยให้เข้าถึงได้เร็วขึ้น
ความแตกต่างระหว่าง Database และ Directory ทำให้ผู้ออกแบบระบบต้องคำนึงถึง และ
เข้าใจในข้อจำกัดของความแตกต่างทั้งสองเพื่อที่จะได้แบ่งแยกได้ถูกว่าข้อมูลชนิดไหนควรจะเก็บลง
Database หรือ Directory
การใชังาน LDAP Server
LDAP นั่นถูกสร้างมาเพื่อเป็น
digital directory จึงสามารถนำไปใช้ได้หลายอย่างไม่ว่าจะเป็นสมุดโทรศัพท์หรือนำไปใช้เป็นฐานข้อมูล
หรือเก็บโครงสร้างข้อมูลแบบที่ต้องการ โดยในทางเทคนิคแล้วอาจพูดได้ว่า LDAP
ให้บริการการสืบค้นพร้อมการกรองข้อมูลที่ซับซ้อน แสดง entity
พร้อมด้วย attribute ที่อยู่ในโครงสร้างที่ซับซ้อน
และให้บริการดึงข้อมูลที่ต้องการ
การ
ใช้งานที่พบบ่อยของ LDAP อาจจะเป็นระบบจัดการผู้ใช้แบบศูนย์กลาง
โดยระบบจะจัดเก็บข้อมูลผู้ใช้ไม่ว่าจะเป็น username,password,ชื่อจริง และแผนก เมื่อผู้ใช้ต้องการเข้าใช้ระบบอื่นๆบนเครือข่ายเช่น web
application, email server ระบบเหล่านั้นก็จะมาตรวจสอบ permission
กับ LDAP การบริหารรายชื่อผู้ใช้จึงได้สะดวกที่จุดเดียวคือ
LDAP
ต่อไปเป็นรูปตัวอย่างการทำงานของการ
Access
เข้าไปในเว็บ Google
ซึ่งขั้นตอนได้แสดงในรูป
เนื่องจากขั้นตอนการ Authentication ผ่าน LDAP Server นั้นจะแตกต่างกันแล้วแต่การออกแบบ จึงไม่ได้แสดงรายละเอียดมากครับ
แสดง 9 ขั้นตอนการ
Access Web Server ของ Google
ตัวอย่างของการออกแบบโครงสร้าง LDAP
ข้อดีและข้อเสียของ
LDAP
ข้อดีของ LDAP
LDAP เก็บข้อมูลเป็นโครงสร้างแบบต้นไม้ ซึ่งสามารถเก็บข้อมูลแยกกันอยู่หลายๆ
เครื่องได้โดยแยกตามโครงสร้างของต้นไม้
LDAP สามารถทำงานได้ทั้งบนโปรโตคอลแบบ Secure
และไม่ Secure
ระบบ Authentication บน Linux สามารถใช้งานผ่าน LDAP ได้อย่างสมบูรณ์
สามารถทำ Replication ได้
ข้อเสียของ LDAP
การคอนฟิกยุ่งยากมาก ต้องใช้คำสั่งเฉพาะของ LDAP
ในการเพิ่ม/ลบผู้ใช้ออกจากฐานข้อมูลเท่านั้น โครงสร้างข้อมูลซับซ้อน
เยี่ยมเลยครับ แต่ลืมเครดิตหรือป่าวเอ่ย >.<
ReplyDeletehttp://www.freebsd.sru.ac.th/index.php/ldap-server/49-ldap-chapter-1
Ldap (Lightweight Directory Access Protocol ) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download Now
Delete>>>>> Download Full
Ldap (Lightweight Directory Access Protocol ) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download LINK
>>>>> Download Now
Ldap (Lightweight Directory Access Protocol ) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download Full
>>>>> Download LINK RI
ขอบคุณครับ ข้อมูลนี้ได้หาไว้นานแล้วครับ ต้องขอโทษด้วยนะครับที่ไม่ได้อ้างอิงเนื่องจาก จำ Link ไม่ได้ครับ
ReplyDelete