ldap-logo

LDAP คืออะไร

LDAP  (Lightweight Directory Access Protocol) เป็น protocol ที่ใช้สำหรับค้นหาข้อมูลในฐานข้อมูล ก่อนที่จะลงลึกว่า LDAP คืออะไร มาดูที่มากันก่อนครับ Directory Access Protocol (DAP) คือมาตราฐาน X.500 ของ directory ในระบบ network ซึ่ง LDAP เป็น “lightweight” นั้นหมายถึง มีขนาดเล็กลง เพราะ version เริ่มต้นไม่ได้มีระบบ security มาด้วย ส่วนใหญ่นำเอามาใช้กับข้อมูลจำพวก รายระเอียดพนักงาน เช่น ชื่อ,นามสกุล,ตำแหน่ง,ที่อยู่

 

ความเป็นมาของ LDAP

LDAP เริ่มต้นคิดค้นที่ University of Michigan และได้รับการรับรองมากกว่า 40 บริษัท ซึ่งทาง Netscape ได้เพิ่มไว้เป็นส่วนหนึ่งของ product และทาง Microsoft เองนำมาใช้กับ Outlook Express ด้วย อีกทั้ง Cisco ก็ support LDAP ในสินค้าด้าน network

 

การทำงานของ Protocol LDAP

เมื่อ Client ทำการเชื่อมต่อ LDAP session เข้ากับ LDAP server จะเรียกว่า Directory System Agent (DSA) ซึ่งปกติจะใช้ TCP port 389 สำหรับ LDAP over SSL จะเป็น port 636 โดยทาง client จะส่ง request มาที่ server และทาง server ก็จะตอบ response กลับไป ไม่จำเป็นที่ client ต้องรอ response กลับมาก่อนที่จะส่ง request อันต่อไป รวมถึง server เองก็ไม่ต้องส่ง response เรียกตามลำดับด้วย เพราะข้อมูลทั้งหมดรับส่งโดยใช้ Basic Encoding Rules (BER)

ขั้นตอนการทำงานของ Client จะมีได้ดังนี้

  • StartTLS — Transport Layer Security เพื่อเข้ารหัสข้อมูล
  • Bind — Auten user/pass กับทาง server
  • Search — ค้นหาข้อมูลด้วย attribute key
  • Compare — ทดสอบดูว่าข้อมูลที่ค้นหา ตรงกับ attribute
  • Add a new entry
  • Delete an entry
  • Modify an entry
  • Modify Distinguished Name (DN) — แก้ไข entry
  • Abandon — ยกเลิก request
  • Extended Operation — ใช้เพื่อกำหนด operation อื่น
  • Unbind — logout เพื่อปิด connection

บางที server อาจจะส่ง “Unsolicited Notifications” ซึ่งไม่ได้ตอบมาทุก request เฉพาะกรณีเกิด timeout

ldap flow

 

 

โครงสร้างของ LDAP Directory

  • ตัว entry (ตำแหน่งข้อมูล) จะประกอบด้วยชุดของ attributes
  • ทุก attribute จะมีชื่อ (type, description) ซึ่งจะกำหนดใน schema
  • ทุก entry ต้องไม่ซ้ำกัน ซึ่งเป็น Distinguished Name (DN)
  • Each entry has a unique identifier: its Distinguished Name (DN)

 

ตัวอย่าง entry ที่แสดงในรูปแบบ LDAP Data Interchange Format (LDIF)

 dn: cn=John Doe,dc=example,dc=com
 cn: John Doe
 givenName: John
 sn: Doe
 telephoneNumber: +1 888 555 6789
 telephoneNumber: +1 888 555 1232
 mail: john@example.com
 manager: cn=Barbara Doe,dc=example,dc=com
 objectClass: inetOrgPerson
 objectClass: organizationalPerson
 objectClass: person
 objectClass: top

dn คือ Distinguished Name ของ entry นี้ ไม่ใช่ attribute “cn= John Doe” เป็น RDN (Relative Distinguished Name)

  • “cn= John Doe” คือ RDN (Relative Distinguished Name)
  • “dc= example, dc=c0m” ทั้งหมดคือ DN ของ parent entry

cn คือ Common Name

dc คือ Domain Component

ldap tree

 

Sever จะเก็บข้อมูลในลักษณะ subtree โดยจะเริ่มหาทีละ entry เช่น “dc=example,dc=com” โดย server อาจจะใช้ server อื่นเป็นตัวอ้างอิง เช่น  “ou=department,dc=example,dc=com” อาจจะตอบกลับมาเป็น reference ไปที่ server ที่มีข้อมูลอยู่ในส่วนของ directory tree ซึ่งทาง client สามารถที่จะติดต่อกับ server อื่นได้

 

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com,https://en.wikipedia.org

One Thought to “LDAP คืออะไร แอลแดป เป็นโปรโตรคอลที่ใช้สำหรับเข้าถึงข้อมูล”

  1. […]  LDAP database  หรือ Lightweight Diretory Access Protocol  ทำงานโดยอาศัย Active Directory (AD) […]

Leave a Reply