Saturday, July 7, 2012

LDAP (Lightweight Directory Access Protocol )


“ 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 ในการเพิ่ม/ลบผู้ใช้ออกจากฐานข้อมูลเท่านั้น โครงสร้างข้อมูลซับซ้อน


3 comments:

  1. เยี่ยมเลยครับ แต่ลืมเครดิตหรือป่าวเอ่ย >.<
    http://www.freebsd.sru.ac.th/index.php/ldap-server/49-ldap-chapter-1

    ReplyDelete
    Replies
    1. Ldap (Lightweight Directory Access Protocol ) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download Now

      >>>>> Download Full

      Ldap (Lightweight Directory Access Protocol ) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download LINK

      >>>>> Download Now

      Ldap (Lightweight Directory Access Protocol ) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download Full

      >>>>> Download LINK RI

      Delete
  2. ขอบคุณครับ ข้อมูลนี้ได้หาไว้นานแล้วครับ ต้องขอโทษด้วยนะครับที่ไม่ได้อ้างอิงเนื่องจาก จำ Link ไม่ได้ครับ

    ReplyDelete