Belajar LDAP - Schema & Object Classes
Episode 3 of 31

Belajar LDAP - Schema & Object Classes

Menyelami aturan main direktori: tipe atribut, object classes structural, auxiliary, dan abstract, skema standar yang tersedia, serta daftar object classes dan atribut yang paling sering dipakai.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 2 kalian melihat schema sebagai salah satu konsep inti model data LDAP. Episode 3 membongkarnya: apa itu schema, bagaimana tipe atribut bekerja, tiga jenis object classes, skema standar yang sudah tersedia di OpenLDAP, dan daftar object classes serta atribut paling umum yang akan kalian pakai berulang kali. Setelah episode ini, kalian tidak akan lagi menebak-nebak apakah sebuah entry valid — schema yang menentukan semuanya.

Dasar-dasar Schema

Schema adalah aturan main direktori. Sebelum sebuah entry bisa hidup di DIT, ia harus lolos verifikasi schema. Empat komponen utamanya:

  • Attribute types — definisi atribut: nama, sintaks, dan apakah boleh multi-valued.
  • Object classes — kumpulan atribut yang boleh dan wajib dimiliki satu jenis entry.
  • Syntax rules — menentukan format nilai, misalnya string, integer, atau biner.
  • Matching rules — menentukan bagaimana nilai dibandingkan saat pencarian, misalnya case-insensitive untuk nama.
  • Schema enforcement — OpenLDAP menolak entry yang melanggar schema; ini kunci kenapa direktori tetap rapi.

Tipe Atribut

Atribut punya sifat-sifat yang menentukan bagaimana ia dipakai:

  • Sintaks atribut — tipe nilai: string, integer, biner, timestamp, dan lain-lain.
  • Single-valued vs multi-valued — atribut seperti mail boleh punya banyak nilai, sementara uidNumber hanya satu.
  • Mandatory vs optional — atribut wajib (MUST) dan atribut boleh diisi (MAY) ditentukan oleh object class.
  • User attributes vs operational attributes — atribut biasa yang berisi data bisnis, versus atribut yang dikelola server seperti creatorsName dan modifyTimestamp.
  • Attribute options — penanda tambahan, misalnya tag bahasa mail;lang=id atau penanda ;binary.

Untuk mengenal sintaks dan aturan sebuah atribut, kalian bisa membacanya dari definisi di file schema:

LinuxDefinisi atribut cn di core.schema
attributetype ( 2.5.4.3
    NAME 'cn'
    DESC 'RFC4519: common name'
    SUP name
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    SINGLE-VALUE )

Definisi di atas menampilkan cn sebagai atribut yang dibandingkan dengan matching rule caseIgnoreMatch, memakai sintaks string, dan single-value. Inilah bentuk nyata dari komponen-komponen schema yang barusan dijelaskan.

Object Classes

Tiap entry punya satu atau lebih object classes yang menentukan bentuknya. Tiga jenis utama:

  • Structural object classes — tulang punggung entry; setiap entry wajib punya tepat satu structural class, misalnya inetOrgPerson atau organizationalUnit.
  • Auxiliary object classes — pelengkap yang menambah atribut tanpa mengubah sifat dasar entry, misalnya posixAccount yang menambahkan uidNumber dan gidNumber.
  • Abstract object classes — hanya dipakai sebagai dasar pewarisan, tidak pernah menjadi object class langsung sebuah entry. Contohnya top.

Object classes mendukung pewarisan: sebuah class mewarisi atribut dari parent-nya. Karena itu person mewarisi dari top, organizationalPerson mewarisi dari person, dan inetOrgPerson mewarisi dari organizationalPerson.

Object Classes vs Atribut

Agar tidak tertukar, mari bandingkan langsung:

AspekObject ClassesAtribut
SifatJenis entryProperti entry
ContohinetOrgPerson, organizationalUnitcn, sn, mail
Ditulis di entrySebagai objectClassSebagai pasangan nama: nilai
Peran schemaMenentukan MUST dan MAYMenyimpan nilai
PenambahanObject class baru harus didefinisikanAtribut baru harus didefinisikan

Intinya: object class menentukan aturan, atribut menyimpan nilai. Sebuah entry bisa punya banyak object classes, tetapi hanya satu structural — sisanya auxiliary.

Skema Standar

OpenLDAP sudah dikemas dengan skema standar di direktori /etc/ldap/schema/:

File schemaIsi
core.schemaTipe dasar: top, person, organizationalUnit, atribut cn, sn
cosine.schemaObjek dan atribut COSINE/Internet X.500
inetorgperson.schemaInformasi person modern: mail, telephoneNumber
nis.schemaAtribut NIS/YP: uidNumber, gidNumber, homeDirectory
ppolicy.schemaPassword policies
misc.schemaKoleksi atribut beragam

Masing-masing file bisa dimuat ke dalam konfigurasi cn=config saat server aktif — cara memuatnya akan kalian pelajari di episode 10.

Object Classes Umum

Beberapa object class yang paling sering kalian temui:

  • top — abstract class dasar, induk semua object classes.
  • person — manusia sederhana dengan cn dan sn.
  • organizationalPerson — person dalam konteks organisasi.
  • inetOrgPerson — person modern dengan mail, telephoneNumber, dan atribut RFC 2798.
  • posixAccount — akun Unix: uidNumber, gidNumber, homeDirectory, loginShell.
  • groupOfNames — grup yang berisi member dengan DN.
  • organizationalUnit — unit organisasi seperti departemen.
  • domain — representasi domain DNS.

Atribut Umum

Melengkapi object classes, berikut atribut yang paling sering dipakai:

  • cn (common name) — nama umum entry.
  • sn (surname) — nama keluarga.
  • givenName — nama depan.
  • mail — alamat email, multi-valued.
  • telephoneNumber — nomor telepon.
  • uid (user ID) — identifikasi user pada entry.
  • uidNumber, gidNumber — ID numerik POSIX untuk akun Unix.
  • userPassword — hash password user.
  • memberOf, member — keanggotaan grup.
  • description — deskripsi bebas.

Pola umum akun Linux di LDAP menggabungkan inetOrgPerson (structural) dan posixAccount (auxiliary), sehingga satu entry bisa berisi uid, cn, sn, mail, uidNumber, gidNumber, dan homeDirectory sekaligus. Pola inilah yang menjadi fondasi LDAP sebagai backend autentikasi.

Penutup

Episode 3 menjelaskan aturan main direktori: schema sebagai penegak aturan, tipe atribut dengan sintaks dan matching rules, tiga jenis object classes dengan sistem pewarisan, skema standar bawaan OpenLDAP, serta katalog object classes dan atribut yang akan menemani praktik kalian di episode selanjutnya.

Inti yang harus dibawa pulang:

  • Satu structural object class wajib di setiap entry; auxiliary menambahkan atribut.
  • posixAccount menghubungkan LDAP dengan dunia Unix.
  • caseIgnoreMatch membuat nilai atribut tidak peka huruf besar-kecil.
  • Skema standar tinggal dimuat dari /etc/ldap/schema/.

Di episode 4 berikutnya, kalian mempelajari alamat setiap entry: Distinguished Names — bagaimana DN tersusun dari RDN, bagaimana komponen-komponennya dipakai, dan bagaimana DN diterjemahkan ke dalam LDAP URL.