แสดงบทความที่มีป้ายกำกับ LDAP แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ LDAP แสดงบทความทั้งหมด

วันจันทร์ที่ 31 สิงหาคม พ.ศ. 2552

การทำ Relationship Mapping ใน LDAP

บทความนี้ต่อเนื่องจาก ทำความเข้าใจ LDAP (แบบย่อๆ)
เนื่องจากโครงสร้างของ LDAP เป็น tree ไม่ใช้ table อย่าง RDBMS ปัญหาที่ตามมาคือจะใช้ LDAP เก็บข้อมูลที่มีความสัมพันธ์กันอย่างไร

การแม็พความสัมพันธ์มีหลายวิธีเช่น
1. Relations by DN
2. Relations by Attribute
3. Relations by Hierarchy
ในบทความนี้จะอธิบายแบบ Relations by DN ซึ่งเป็นวิธีที่ยืดหยุ่นและพบว่าใช้กันมาก

ต้องขอบคุณเอกสารจาก DataNucleus ที่ทำให้เข้าใจโครงสร้างข้อมูลของ LDAP สำหรับการนำไปใช้งาน

วันจันทร์ที่ 17 สิงหาคม พ.ศ. 2552

ทำความเข้าใจ LDAP (แบบย่อๆ)

โน๊ตย่อๆเกี่ยวกับ LDAP เพื่อความเข้าใจเบื้องต้น เป้าหมายอยู่ที่ SSO (Single Sign On) ถ้าไม่ขี้เกียจไปซ่ะก่อน

LDAP (Lightweight Directory Access Protocol) เก็บข้อมูลโดยมีโครงสร้าง คล้ายๆ ต้นไม้(Tree) โดยแต่ละโนด(Node) เรียกว่า เอ็นทรี(Entry) แต่ละ Entry จะมี DN(Distinguished Name) หรือก็คือชื่อที่ใช้ระบุ Entry


โดย Entry ลูก ที่อยู่ใต้ Entry แม่ จะมี DN ของ Entry แม่ เป็น Suffix Entry นั้น ดังภาพ (รูปจาก SUN ไม่ค่อยชัดเพ่งๆเอาหน่อย)

รายละเอียด Entry จะประกอบด้วย objectClass และ Attribute ต่างๆ
- objectClass ใช้บอกรายละเอียดชนิดของ Entry ซึ่ง Object Class นี้เองที่สามารถบอกว่า Entry มี Attribute อะไรได้บ้าง
- Attribute เทียบได้กับ property ของ Object ในภาษา OO ทั่วไป มักใช้ตัวย่อ ตัวอย่างของ Attribute เช่น uid = User id, cn = Common Name, sn = Surname ฯลฯ
รายละเอียดชนิดของ Obejct Class, Attribute type ถูกกำหนดโดยสิ่งที่เรียกว่า Schema ซึ่งมีมาตราฐานตาม RFC2247 และ RFC2256 ตามลำดับ Schema ไม่ได้เพียงแต่กำหนด Object Class และ Attribute type เท่านั้น ยังมีกำหนดอย่างอื่นอีกเพียบ Attribute Syntaxes, Matching Rules, Matching Rule Uses, Attribute Types, Object Classes, Name Forms, Content Rules และ Structure Rule

ตัวอย่าง Entry ในรูปแบบ LDIF(LDAP Data Interchange Format)
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


ถ้า Directory Service ใช้เก็บและแชร์ข้อมูล คล้ายสมุดหน้าเหลือง แล้วมันจะต่างอะไรกับ Database ลองอ่านดูจากลิงค์ ได้มีเปรียบเทียบไว้

Directory Service มักจะเป็นส่วนประกอบหลักในการออกแบบระบบรักษาความปลอดภัย เนื่องจาก admin สามารถคุมการเข้าถึงทรัพยากรต่างๆในระบบได้ โดยใช้ Directory Service นี้เป็นศูยน์กลางในการเซ็ตข้อมูลต่างๆของผู้ใช้งาน สิทธิ์การเข้าถึงทรัพยากรต่างๆ สาเหตุหนึ่งเนื่องจากโครงสร้างของ Directory Service ที่สามารถเข้าถึงข้อมูลได้อย่างรวดเร็ว ทำให้เหมาะกับการเป็นศูยน์กลาง การเข้าถึงเพื่อดึงข้อมูลต่างๆหรือเพื่อทำ access control ผู้ใช้จากแอฟพริเคชั่นต่างๆในปริมาณสูงได้