bab 2 landasan teori 2.1 internet 2.1.1...

53
BAB 2 LANDASAN TEORI 2.1 Internet 2.1.1 Pengertian M enurut Engst et al (1995), internet dapat didefinisikan sebagai sebuah kumpulan yang sangat besar dari manusia, mesin, program software, dan data, yang tersebar disekeliling dunia dan terus-menerus berhubungan. Menurut Turban et al (2005, pp478), internet didefinisikan sebagai sebuah jaringan yang menghubungkan kurang lebih satu juta organisasi internasional jaringan komputer di dalam lebih dari 200 negara pada semua benua, termasuk Antartika. Secara lebih sederhana pengertian internet berdasarkan kedua pengertian di atas dapat disederhanakan menjadi, internet adalah sebuah kumpulan jaringan yang terdiri dari banyak manusia, mesin, program software, dan data, yang memiliki jumlah sangat besar, tersebar di seluruh dunia, dan terus-menerus berhubungan. 2.1.2 Sejarah Internet Menurut Turban et al (2005, pp478), sejarah internet dimulai ketika sebuah proyek dari Advanced Research Project Agentcy (ARPA), yang merupakan departemen pertahanan Amerika Serikat. Proyek ini dimulai pada tahun 1969, dan dinamakan ARPAn et . Ini digunakan untuk mengetes kemungkinan dari wide area computer network melewati bagian researcher, educator, military, dan government agency dap at melakukan share data, melakukan pertukaran pesan, dan mengirimkan file. Proyek ini 8

Upload: others

Post on 28-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

8

BAB 2

LANDASAN TEORI

2.1 Internet

2.1.1 Pengertian

Menurut Engst et al (1995), internet dapat didefinisikan sebagai sebuah

kumpulan yang sangat besar dari manusia, mesin, program software, dan data, yang

tersebar disekeliling dunia dan terus-menerus berhubungan.

Menurut Turban et al (2005, pp478), internet didefinisikan sebagai sebuah

jaringan yang menghubungkan kurang lebih satu juta organisasi internasional jaringan

komputer di dalam lebih dari 200 negara pada semua benua, termasuk Antartika.

Secara lebih sederhana pengertian internet berdasarkan kedua pengertian di atas

dapat disederhanakan menjadi, internet adalah sebuah kumpulan jaringan yang terdiri

dari banyak manusia, mesin, program software, dan data, yang memiliki jumlah sangat

besar, tersebar di seluruh dunia, dan terus-menerus berhubungan.

2.1.2 Sejarah Internet

Menurut Turban et al (2005, pp478), sejarah internet dimulai ketika sebuah

proyek dari Advanced Research Project Agentcy (ARPA), yang merupakan departemen

pertahanan Amerika Serikat. Proyek ini dimulai pada tahun 1969, dan dinamakan

ARPAnet. Ini digunakan untuk mengetes kemungkinan dari wide area computer network

melewati bagian researcher, educator, military, dan government agency dapat

melakukan share data, melakukan pertukaran pesan, dan mengirimkan file. Proyek ini

8

9

terus berkembang dan pada tahun 1993 ketika organisasi komersial bergabung dengan

ARPAnet, proyek ini diganti menjadi Internet, yang sekarang telah memiliki lebih dari

500 juta pengguna.

2.2 World Wide Web (WWW)

2.2.1 Pengertian

Menurut Engst et al (1995), mengatakan bahwa WWW atau lebih dikenal dengan

Web memberikan keistimewaan yang sangat penting untuk internet. Web menyediakan

akses untuk huruf, ukuran, dan tipe dari teks, dan juga dapat dimasukkan gambar pada

tampilan dengan perlakuan yang biasa. Suara dan film juga mungkin dimasukkan. Web

juga menyediakan hypertext, yang menghubungkan dokumen manapun di dalam Web,

tidak hanya pada satu mesin. Hypertext merupakan sebuah konsep yang kuat yang

mengijinkan pembaca untuk mengendalikan fleksibilitas lewat sebagaian link dari

informasi.

Menurut Turban et al (2005, pp482), menjelaskan bahwa WWW tidak serupa

dengan Internet. Fungsi Internet adalah sebagai mekanisme transport. Sedangkan WWW

adalah sebuah aplikasi yang menggunakan fungsi transport itu. Aplikasi lain juga dapat

berjalan dalam Internet. Web merupakan sebuah sistem dengan standar universal yang

dapat diterima untuk penyimpanan, pengambilan, pembuatan/pembentukan, dan

menampilkan informasi lewat arsitektur client/server. Web menangani semua tipe

informasi digital, termasuk teks, hypermedia, grafik, dan suara. Web menggunakan user

interface berupa grafik. Web yang berdasarkan standar bahasa hypertext dinamakan

Hypertext Markup Language (HTML), dimana format dokumen dan penggabungan link

10

hypertext yang dinamik untuk dokumen lain disimpan pada komputer yang sama atau

berbeda.

2.2.2 Web Portal

Web portal merupakan sebuah teknologi yang akan berkembang pada teknologi

web di masa depan. Satu halaman portal terdiri dari berbagai macam portlets yang dapat

mengirimkan informasi dari banyak sumber (Braun et al, 2004). Selain informasi web

portal juga dapat menggabungkan berbagai aplikasi web menjadi satu kesatuan, sebagai

contoh adalah sharing content, digital cinema, e-learning, dll (Mannaert et al, 2003).

2.3 Lightweight Data Access Protokol (LDAP)

2.3.1 Pengertian LDAP

Menurut Carter (2003), pengertian LDAP dibagi menjadi 3 bagian, yaitu:

• Lightweight

• Directory

• Access Protocol

2.3.1.1 Lightweight

LDAP dikatakan ringan jika dibandingkan dengan X.500 servis direktori

(Carter, 2003). Hal ini dikarenakan pada mulanya root LDAP sangat dekat terkait

dengan X.500. LDAP pada mulanya dibuat sebagai protokol desktop yang lebih muda

11

yang digunakan sebagai gateway untuk X.500 server. X.500 merupakan sebuah

standard. X.500 mendapatkan gelar Heavyweight karena membutuhkan client dan server

untuk berkomunikasi menggunakan Open System Interface (OSI) protokol. Tujuh layer

OSI ini bagus dalam mengaplikasikan jaringan protocol suite, tetapi ketika dibandingkan

dengan TCP/IP protocol suite, ini serupa dengan bepergian jauh dengan dengan barang

bawaan yang sangat berat.

Dengan demikian LDAP dikatakan ringan (“lightweight”) karena menggunakan

pesan sedikit diatas udara yang dipetakan secara langsung pada TCP layer (biasanya

port 389) dari TCP/IP protokol (Carter, 2003). Karena X.500 merupakan layer aplikasi

protokol (dalam OSI layer) maka ini akan membawa lebih banyak bawaan, seperti

network header yang dipasang pada paket pada setiap layer sebelum akhirnya

dikirimkan ke jaringan.

LDAP juga dikatakan ringan (“lightweight”), karena menghilangkan banyak

operasi X.500 yang jarang digunakan (Carter, 2003). LDAPv3 hanya memiliki sembilan

operasi utama dan menyediakan model sederhana untuk programmer dan administrator.

Menyediakan satu set operasi yang lebih kecil dan sederhana yang mengijinkan

pengembang untuk fokus pada seluk-beluk dari program tanpa harus mengerti

keunggulan dari protokol yang jarang digunakan. Dengan jalan ini pembuat LDAP

berharap untuk meningkatkan penggunaan dengan menyediakan pengembangan aplikasi

yang lebih mudah.

12

2.3.1.2 Directory

Jaringan servis direktori bukanlah suatu hal yang baru, khususnya untuk Domain

Name System (DNS) (Carter, 2003). Bagaimanapun servis direktori sering dibingungkan

dengan database. Perlu diingat bahwa servis direktori dan database memiliki

karakteristik masing-masing, seperti pencarian cepat dan schema yang dapat diperluas.

Perbedaannya adalah direktori dibuat untuk dibaca lebih banyak dari pada ditulis.

Sedangkan untuk database diasumsikan untuk operasi baca dan tulis memiliki frekuensi

yang sama. Asumsi bahwa direktori dibaca lebih sering dari pada ditulis merupakan

suatu keunggulan yang spesifik untuk sebuah database, seperti dukungan untuk transaksi

dan menulis lock merupakan sesuatu hal yang tidak penting untuk servis direktori seperti

LDAP.

Pada titik ini penting untuk membedakan antara LDAP dengan backend yang

digunakan untuk menyimpan data. Ingat bahwa LDAP hanya sebuah protokol, yang

penting adalah LDAP adalah sebuah set dari pesan yang digunakan untuk mengakses

data yang spesifik. Protokol ini tidak mengatakan apapun tentang dimana data disimpan.

Pada intinya adalah bahwa client tidak akan (dan tidak akan pernah) melihat atau

bahkan tahu tentang mekanisme penyimpanan backend (Carter, 2003).

13

Gambar 2.1 hubungan antara LDAP client, server, dan data storage

Seperti sudah disarankan bahwa LDAP server dapat digunakan sebagai backend

storage untuk web server. Semua HTML dan file grafik dapat disimpan dalam direktori

dan dapat dipertanyakan (query) oleh banyak web server. Disamping semuanya, sebuah

web server biasanya hanya membaca file dan mengirimkannya ke client, file itu sendiri

tidak akan sering diubah. Ketika ini mungkin untuk mengimplementasikan web server

yang menggunakan LDAP untuk mengakses backend storage, ada sebuah tipe spesial

dari direktori yang telah ada, dan ini merupakan suite yang lebih baik untuk memenuhi

kebutuhan melayani file, namanya adalah filesystem.

Dengan demikian ada dua inti penting yang dapat diambil tentang maksud fungsi

dari LDAP (Carter, 2003) :

1. LDAP tidak secara umum menggantikan special direktori seperti halnya

filesystem atau DNS.

2. Ketika menyimpan suatu tipe spesifik dari informasi binary (misal : jpeg foto)

dalam direktori dapat digunakan, LDAP tidak dimaksudkan untuk menyimpan

tipe tertentu seperti “blobs” (Binary Lumps of Bits).

14

2.3.1.3 Access Protocol

Penjelasan berikut akan cukup untuk membuat berpikir bahwa LDAP merupakan

message-based, client/server protokol yang didefinisikan dalam RFC 2251. LDAP itu

asynchronous (meskipun banyak peralatan development menyediakan baik blocking dan

nonblocking API), ini berarti bahwa sebuah client dapat menimbulkan banyaknya

permintaan dan response-nya mungkin datang dalam urutan yang berbeda ketika

permintaan itu dimunculkan (Carter, 2003).

Gambar 2.2 LDAP request dan response

15

2.3.2 Model LDAP

Model LDAP mewakili servis yang disediakan oleh server, seperti yang dilihat

oleh client. Model ini merupakan model abstrak yang menjelaskan tentang berbagai

macam aspek dari direktori LDAP (Carter, 2003). RFC 2251 membagi direktori LDAP

menjadi dua komponen, yaitu protokol model dan data model. Ada empat model yang

didefinisikan oleh Timothy A. Howes, dkk (Howes et al, 2003):

• Information Model

Model informasi menyediakan struktur dan tipe data yang diperlukan untuk

membangun sebuah pohon direktori LDAP. Inputannya adalah unit dasar dari

sebuah direktori LDAP. Bentuk visualnya dapat dilihat sebagai node interior

atau node exterior dalam Directory Information Tree (DIT). Sebuah inputan

terdiri dari informasi tentang misalnya satu atau lebih objectClasses.

ObjectClasses ini memiliki kebutuhan yang spesifik atau atribut pilihan. Tipe

atribut harus dibuat encoding dan aturan pencocokannya yang menentukan

sesuatu sebagai tipe dari data atribut dapat ditahan dan bagaimana

membandingkan data ini selama melakukan pencarian.

• Naming Model

Model naming menentukan bagaimana entry dan data dalam DIT memiliki

alamat yang unik. Setiap entry memiliki sebuah atribut yang unik diantara semua

atribut yang lain. Keunikan atribut ini dinamakan Relative Distinguished Name

(RDN). Keunikan suatu atribut dapat dicari dengan mengenali entry dalam

sebuah direktori dengan mengikuti RDN dari semua entry dalam jalur dari node

yang diinginkan sampai root dari tree. String ini dibuat dengan

16

mengkombinasikan RDN ke dalam bentuk nama yang unik yang disebut node

Distinguished Name (DN).

Gambar 2.3 Contoh tree direktori LDAP

Garis besar entry direktori pada gambar diatas mempunyai sebuah RDN yaitu

cn=gerald carter. Sebagai catatan bahwa nama atribut akan sama dengan nilai

yang dimasukkan dalam RDN. DN untuk node ini akan menjadi cn=gerald

carter, ou=people, dc=plainjoe, dc=org.

• Fungsional Model

Model fungsional adalah protokol LDAP itu sendiri. Protokol ini menyediakan

tujuan untuk mengakses data dalam tree direktori. Akses diimplementasikan

dengan operasi autentikasi (binding), operasi query (search dan read), dan

operasi update (write).

• Security Model

Model security menyediakan sebuah mekanisme untuk client yang digunakan

untuk membuktikan identitas (authentication) dan untuk server adalah sebagai

17

pengatur client yang terautentifikasi dalam mengakses data (authorization).

LDAPv3 menyediakan beberapa metode autentifikasi yang tidak didapatkan

dalam protokol versi sebelumnya. Beberapa keunggulan, seperti access control

list, belum mendapat standarisasi, sehinggal membiarkan vendor dengan

perlengkapan mereka sendiri.

Pada level tingkat tinggi ini, LDAP termasuk kategori sederhana. LDAP adalah sebuah

protokol untuk membangun pembagian direktori tingkat tinggi.

2.3.3 Ruang lingkup LDAP

Pada bagian diatas telah dijelaskan tentang apa itu LDAP, serta pengertian dari

LDAP itu sendiri. Pada bagian ini akan dijelaskan tentang beberapa area yang dapat

digunakan untuk menyimpulkan apa itu LDAP dan seperti apa LDAP itu. Menurut

Arkills (2003), ada sebuah contoh yang dapat digunakan untuk memahami konteks nyata

untuk konsep yang abstrak. Mycompany.com merupakan sebuah tipe perusahaan, yang

berpengalaman tentang syarat teknik untuk mengangkat bisnisnya.

18

Gambar 2.4 Integrasi dari aplikasi dan infrastruktur Mycompany.com dengan

menggunakan LDAP

Perusahaan Mycompany akan menggunakan LDAP direktori untuk mengikat

semua aplikasi dan servis yang ada menjadi satu, menjadi data manajemen yang lebih

sederhana, memotong biaya pengembangan dan support, dan menyediakan sebuah

manajemen infrastruktur teknologi informasi. Pada gambar 2.4, digambarkan bagaimana

setiap aplikasi, database, dan servis akan berinteraksi dengan data di dalam direktori

LDAP. Arah keluar dari direktori menunjukkan operasi search (query) yang merupakan

sumber informasi untuk servis atau aplikasi. Arah ke dalam direktori menunjukkan

19

sumber dari data direktori atau data direktori yang telah ada yang memiliki

kemungkinan untuk diubah.

Ada empat ruang lingkup yang dapat digunakan untuk menjelaskan tentang

LDAP (Arkills, 2003), yaitu:

• Namespace

• Client operation

• Schema

• Management

2.3.3.1 LDAP Namespace

”Namespace” menyatakan secara tidak langsung bahwa sebuah nama adalah

tidak sesederhana sebuah nama, tetapi mengandung arti dalam hubungannya dengan

struktur yang ada. Hubungan ini mengandung dua aspek yang berbeda dari direktori dan

mencari bagaimana mengikatnya menjadi satu, atau dengan kata lain bagaimana

memberi nama sesuatu dan bagaimana mengaturnya. Definisi dari servis namespace

adalah sangan kritis. Ini mungkin sangat jelas, tetapi sebuah namespace mengijinkan

untuk menemukan sesuatu. Namespace adalah suatu set dari kumpulan yang digunakan

untuk mengenali semua objek dalam sebuah lingkungan yang diberikan. Dengan kata

lain ini merupakan sistem penamaan. Tanpa sebuah namespace yang disetujui bersama,

mungkin yang terjadi adalah mengarah pada suatu objek yang sama tetapi menggunakan

bahasa yang berbeda. Sebuah namespace yang bagus juga memberi keyakinan bahwa

nama satu objek tidak akan konflik dengan objek yang lainnya (Arkills, 2003).

20

Sebuah namespace lebih banyak mengandung informasi dibandingkan dengan

pengenalan secara cepat. Sebuah analogi yang dapat digunakan sebagai contoh dalam

dunia nyata adalah sistem pengalamatan pada kartu pos. Dalam kartu pos akan terdapat

informasi seperti (Arkills, 2003):

• Nama orang

• Nama jalan

• Kota dan kodepos

• Negara

Alamat ini memberitahukan tentang banyak hal mengenai cara bagaimana struktur ini

dibentuk dan nilai dari setiap komponennya, juga membentuk penerima secara unik.

Langkahnya dimulai dari nama negara, lalu nama kota dan kodepos, kemudian nama

jalan, dan akhirnya nama penerima. Dari hal ini dapat diketahui bahwa penerimanya

merupakan unik, atau dapat dikatakan berbeda dari nama yang sama tapi berada pada

alamat yang berbeda.

Dengan menggunakan tingkatan namespace maka akan dapat dikirimkan

informasi manajemen. Tetapi berdasarkan keterangan lain yang diilustrasikan dengan

kartupos, karena namespace diatur dalam bentuk tingkatan akan mengurangi jangkauan

yang dibuat secara jelas. Manajemen termasuk dalam objek dapat dikirimkan, dengan

kata lain sebelum pembaca menyampaikan surat pada tujuannya, pertama kali yang

dilakukan adalah mengirimkannya ke kantor pos yang bertanggung jawab untuk negara

yang tertera di surat. Setelah itu baru dikirimkan pada kantor pos setempat, dan

seterusnya sampai surat itu sampai pada penerima. Tingkatan yang melekat pada

21

namespace secara baik menyediakan keefektifan dalam kerjasama pengiriman dari

manajemen.

Penggunaan namespace juga dapat mengarah pada implementasi khusus dari

direktori. Ketika kata namespace digunakan dalam konteks dari namespace direktori

khusus, sedikit perbedaan arti terdapat di dalamnya. Dalam konteks ini bukan

merupakan sistem penamaan yang dibutuhkan. Dalam konteks ini namespace ditujukan

untuk semua objek dalam direktori dan struktur spesifik yang dipilih. Dengan LDAP,

kelihatannya ada dua nama untuk setiap istilah direktori. Kata ini adalah Directory

Information Tree (DIT) yang digunakan untuk menunjuk pada namespace direktori yang

khusus (Arkills, 2003).

2.3.3.1.1 DNS

Nama DNS server merupakan dasar untuk nama root dari LDAP direktori

(Arkills, 2003). Domain Name System (DNS) membentuk suatu bagian dari dasar untuk

namespace LDAP, dan ini juga merupakan contoh yang baik untuk sebuah namespace.

Mengeksplorasi bagaimana DNS bekerja akan menolong dalam menemukan garis besar

tentang LDAP. Nama DNS dari direktori LDAP server dapat menjadi bagian paling

penting dalam menentukan nama dari direktori root, dimana merupakan direktori

berbasiskan DN. Meskipun DNS digunakan dalam penamaan mempengaruhi dari

implementasi namespace LDAP. Sebuah direktori berbasiskan DN tidak harus sama

dengan nama DNS dari direktori server, dan keduanya biasanya tidak cocok ketika

sebuah direktori disebarkan menyeberangi banyak server yang diinginkan. Disamping

dari koneksi ini pada namespace, DNS juga dapat menjalankan sebuah aturan kritis

22

dalam proses LDAP client menemukan lokasi LDAP direktori server. DNS tidak harus

digunakan dalam lokasi server, tetapi seringkali digunakan.

DNS memetakan nama manusia pada nama komputer. DNS adalah sebuah

penyebaran direktori servis yang dikelola oleh ribuan server diseluruh dunia. Ada

milyaran dokumen dalam direktori ini, dimana peta dan alamat IP pada satu nama

komputer dan sebaliknya. Alamat IP adalah angka yang merupakan nama dimana satu

komputer digunakan untuk menghubungi komputer yang lain. Orang mengetahui

komputer melalui nama yang terdiri dari gabungan angka dan huruf (alphanumeric).

Sebuah contoh adalah host.mycompany.com dalam 127.42.12.6. dokumen ini

menunjukkan bahwa host.mycompany.com adalah nama manusia dari komputer yang

memiliki alamat IP 127.42.12.6.

Sebuah urutan tingkatan DNS dipekerjakan untuk menyediakan dasar yang

bersih untuk pemecahan nama yang berwenang. Dokumen ini disebarkan melewati

jutaan file yang disebut zones. Setiap zone menampung sebuah copy dari dokumen untuk

namespace DNS untuk jika ini berwenang. Dengan kata lain, setiap zone mengijinkan

perubahan pada hanya sebagian kecil dari seluruh namespace DNS. Dokumen komputer

host.mycompany.com milik dari zone mycompany. Mycompany zone milik dari zone

com. Dan zone com milik dari zone root. Zone root merupakan zone teratas dari semua

DNS. File zone disimpan dalam DNS server yang berwenang untuk zone itu. Setiap zone

parent adalah yang berwenang dalam membedakan DNS server mana yang berwenang

untuk setiap zone child. Zone root memegang dokumen wewenang untuk setiap zone

DNS pada level satu. Ini berbentuk sebuah urutan tingkatan, dimana komputer client

dapat melakukan query dengan jaminan yang masuk akal untuk mendapatkan wewenang

resolusi nama (Arkills, 2003).

23

Gambar 2.5 Tingkatan dari Zone DNS

Urutan tingkatan dalam resolusi DNS menyediakan sebuah jalan yang tepat guna

bagi komputer client untuk melakukan resolusi nama. Namespace DNS menyediakan

sebuah sistem yang baik untuk mengatur dokumen nama komputer dan untuk

memecahkan lokasi dari nama komputer. Komputer client biasanya diarahkan untuk

melakukan query wewenang DNS server dari zona lokal untuk resolusi nama. Sebagai

contoh, komputer host.mycompany.com akan diubah untuk melakukan query DNS

server untuk mycompany.com. Seharusnya host.mycompany.com ingin tahu alamat IP

untuk unknown.whitehouse.gov, ini pertama kali akan bertanya pada DNS server di

mycompany.com. mycompany.com akan menunjuk pada DNS server com. DNS server

com akan mengarah pada DNS server root. DNS server root akan mengarah pada DNS

server gov. DNS server gov akan mengarah pada DNS server whitehouse.gov. DNS

server whitehouse.gov kemudian akan menjawab client dengan mengirimkan alamat IP

dari unknown.whitehouse.gov. Biasanya DNS server menyembunyikan informasi

24

tentang zone penting seperti root dan DNS server level satu, sehingga pada

kenyataannya proses penggambarannya akan mengikuti banyak jalur yang lebih pendek .

Ada beberapa tipe dasar dari DNS. Untuk penjelasannya dapat dilihat pada tabel

dibawah ini (Arkills, 2003).

Tabel 2.1 Tipe Dasar Dokumen DNS

DNS digunakan untuk mendaftarkan sebuah direktori servis. Satu maksud

penting dari LDAP menggunakan namespace DNS adalah dengan mendaftarkan sebuah

nama domain DNS untuk menghubungkan sebuah host atau zone, secara tidak sengaja

juga mendaftar untuk sebuah namespace direktori servis. Ada persamaan dalam

namespace pengiriman email dengan dokumen MX dan banyak servis berbasiskan

jaringan lainnya. Ketika mendaftar sebuah dokumen untuk mycompany.com dengan

sebuah wewenang dari DNS server, mycompany.com mungkin menjadi sebuah

namespace direktori servis yang aktif (Arkills, 2003).

25

LDAP membuat peningkatan penggunaan DNS khususnya untuk fungsi

namespace-nya. Ada berbagai anggapan tentang hubungan DNS dengan LDAP, RFC

2247 menyediakan standar yang jelas bagi DNS untuk digabungkan secara mudah ke

dalam namespace yang digunakan LDAP dalam direktori. Atribut dari domain

component (dc) sudah ditetapkan, dan ini dapat digunakan sebagai nama atribut dalam

direktori sebagai wadah objek (Arkills, 2003).

2.3.3.1.2 LDAP Object Structure

Struktur internal dalam sebuah direktori LDAP menyediakan aturan untuk entry

dengan sebuah urutan tingkatan. Sebuah struktur sangat penting untuk digunakan dan

diatur dalam sebuah direktori. Struktur juga mengijinkan keuntungan yang dimiliki

namespace LDAP dapat disediakan dengan mudah (Arkills, 2003). Berikut merupakan

keuntungan dari namespace LDAP (Arkills, 2003):

• Struktur dapat membuat lebih mudah untuk menyebarkan informasi melewati

banyak server. Direktori disebarkan melewati banyak server dengan tujuan

menyediakan ketahanan yang lebih besar dan kemungkinan penempatan

informasi direktori dekat dengan lokasi remote.

• Struktur dapat membuat manajemen kontrol akses menjadi lebih sederhana.

• Struktur dapat membuat aplikasi dengan kebutuhan direktori khusus untuk

disatukan dengan suatu direktori.

• Struktur dapat menyederhanakan perawatan direktori dengan menyatukan

entry yang sama menjadi satu.

26

Struktur itu sendiri tidak menyediakan keuntungan ini. Bagi mycompany untuk

merealisasikan keuntungan ini tergantung dari implementasi direktori dan rancangan

dari namespace.

Sebuah urutan tingkatan adalah mungkin di dalam LDAP karena adanya

container entry. Container entry adalah sebuah entry khusus yang mengijinkan entry

lain untuk menempati tempat urutan dibawahnya. Entry yang berada di bawah container

biasa disebut dengan child container atau subordinate entry dari container. Container

terkadang disebut parent dari entry yang berada di bawahnya.

Hanya bentuk struktur yang khusus yang diijinkan dalam LDAP. Namespace

dalam direktori LDAP mengijinkan hubungan yang berubah dalam sebuah struktur.

Struktur sama juga dengan hubungan link dalam sebuah halaman web (struktur web)

juga tidak diijinkan. Lebih khusus lagi, sebuah container hanaya diijinkan memiliki

sebuah parent tunggal diatasnya. Tipe struktur seperti ini biasanya disebut dengan tree

structure. Bagian ini mungkin mengingatkan tentang bagian pengganti untuk

namespace: Directory Information Tree (DIT). Pada gambar di bawah ini (gambar 2.6

dan 2.8) merupakan contoh dari struktur namespace yang benar dan salah. Tujuan

pengaturannya pada struktur adalah memudahkan masalah servis yang kecil ketika entry

yang baru ditambahkan, karena hanya entry baru saja yang ditulis, dan tidak ada entry

yang sudah ada yang diubah (Arkills, 2003).

27

Gambar 2.6 Contoh Tingkatan Namespace yang baik dalam LDAP

Gambar 2.7 Contoh Tingkatan Namespace yang tidak baik dalam LDAP

Dengan LDAP beberapa entry dapat menjadi sebuah container. Sebuah entry

menjadi container ketika beberapa entry diletakkan dibawahnya, tetapi direktori LDAP

28

tidak melakukan perubahan dalam container entry ketika ini terjadi. Dalam LDAP,

semua entry memegang kemungkinan untuk menjadi sebuah container, dan rancangan

ini mendukung banyak kemungkinan urutan tingkatan.

Membuat sebuah container dengan membuat sebuah entry di bawah entry yang

lain. Konsep ini pernah beberapa kali digunakan, sebagai masukan logika bahwa

container entry butuh untuk diubah. Bagaimanapun implementasi khusus dari LDAP

mungkin melewati spesifikasi LDAP dan mempunyai atribut khusus untuk informasi

child supaya terjadi penambahan fungsi dari manajemen.

Dalam implementasi beberapa server LDAP, mungkin akan terjadi pembatasan

dimana object class sebuah entry harus menjadi sebuah container. Pembatasan ini sering

disebut structure rule. Secara umum ada beberapa object class yang biasa digunakan

sebagai container untuk alasan sejarah. Object class ini biasa digunakan karena

merupakan container yang diijinkan dalam X.500 (Arkills, 2003).

Tabel 2.2 Object Class yang biasa digunakan sebagai Container

29

Selain object class ini, organization unit juga digunakan secara luas. Ini

digunakan untuk berbagai macam tujuan yang lebih besar dibandingkan dengan struktur

politik yang sederhana. Penggunaan object class ini tidak diharuskan sebagai container

di dalam direktori.

Structure rule digunakan untuk membatasi ketika sebuah entry dari object class

dapat dibuat. LDAP juga mendukung structure role khususnya untuk sebuah object

class. Fungsi ini tidak semestinya menjadi bagian dalam LDAP standar, tapi ini

diimplementasikan oleh beberapa vendor. Object class dari structure rule menentukan

batasan dimana sebuah entry dari sebuah bagian object class boleh dibuat. Sebagai

contoh, ini mungkin menghubungkan sebuah structure rule dengan organization unit

dari sebuah object class. Structure rule ini mungkin membutuhkan semua entry dari

objectclass=organizationUnit dijadikan anak dari entry objectclass=organization. Rule

ini menentukan tambahan batasan dalam namespace, dan ini juga membatasi kegunaan.

Structure rule dipaksakan oleh proses schema-checking (Arkills, 2003).

Naming context biasanya menunjuk pada bagian dari direktori. Nama dari setiap

container level teratas mempunyai perbedaan yang biasa disebut naming context.

Naming context lebih besar dari hanya sekedar container. Naming context adalah sebuah

subtree yang berdekatan yang dimulai dengan container level teratas. Sebagai contoh,

jika menunjuk pada sebuah objek naming context dalam mycompany, ini akan berarti

container objek, semua dari entry child, dan semua container dan entry yang berada di

bawah container objek, seperti ditunjukkan pada gambar 2.8. Dengan kata lain naming

context sama dengan istilah directory suffix (context prefix dalam X.500). naming

context objek adalah suffix objek (Arkills, 2003).

30

Gambar 2.8 Contoh naming context dalam direktori LDAP

Sesungguhnya tidak ada objek direktori pada root dari direktori LDAP. Sebagai

pengganti, ada direktori khusus seperti objek root, dinamakan root DSE entry, yang

mencatat semua naming context dalam server direktori. Direktori menggunakan naming

context untuk secara cepat membedakan permintaan untuk sebuah entry ketika berada

dalam naming context yang diketahui.

Di dalam direktori dengan struktur flat, susunan dan pengaturan biasanya

diabaikan, ketika menambahkan entry baru akan secara mudah bertambah. Seperti pada

gambar 2.9, kekurangan dari struktur mendorong perkembangan secara mudah karena

hanya ada satu container organizational yang digunakan, dengan sedikit tidak ada

masalah penempatan dalam penambahan. Tetapi dalam model ini, konsistensi dan

skalabilitas dapat menjadi mimpi buruk. Skalabilitas menjadi sebuah masalah ketika

query biasa mengembalikan entry yang sangat banyak. Skalabilitas juga dapat menjadi

31

masalah ketika jumlah dari nama unik yang digunakan sudah mencapai batas

maksimum. Batas maksimum ini mungkin tercapai karena hanya satu entry dalam setiap

bagian container dapat diberi nama dengan nama khusus. Ssebuah urutan tingkatan

dapat mengesampingkan masalah ini dengan mengatur entry dalam banyak level pada

urutan tingkatan (hierarchy).

Gambar 2.9 Namespace flat dalam direktori LDAP

Ada empat pembagian dasar dari namespace direktori yang berguna (Arkills,

2003):

• Political/functional – membagi informasi berdasar pada sebuah organisasi,

atau membedakan dalam fungsi yang dibutuhkan. Sebagai contoh adalah

pemisahan informasi direktori HR dari informasi direktori marketing.

• Geographic – membagi informasi berdasar pada lokasi dari client yang akan

mengakses informasi atau berdasarkan lokasi dari objek nyata yang

dinyatakan dari informasi dalam direktori. Sebagai contoh adalah pemisahan

32

informasi personal untuk individu di Eropa dengan informasi untuk

masyarakat U.S.

• Resource-based – membagi informasi berdasar pada tipe dari resource.

Sebagai contoh adalah pemisahan informasi printer dari informasi server,

atau memisahkan resource public dengan resource private.

• User classification – membagi informasi berdasar pada kebutuhan user.

Sebagai contoh adalah pemisahan informasi untuk manajer dari informasi

untuk staff.

2.3.3.1.3 LDAP Object Naming

Menurut Arkills (2003), Relative Distinguish Name (RDN) adalah sebuah atribut

nama entry. Atribut ini menyediakan penunjuk nama yang unik untuk setiap entry dalam

sebuah container. Sebagai contoh , gambar 2.10 menunjukkan entry seseorang dengan

RDN cn=Brian Arkills. Tidak mungkin dua entry dengan nilai RDN yang sama berada

dalam container yang sama. Jadi tidak ada entry orang lain di dalam container people

dengan cn=Brian Arkills, dan dalam container khusus manapun nilai atribut cn harus

unik untuk entry orang yang berada di bawah pada container itu. Atribut RDN

merupakan salah satu dari atribut entry, dikenal dengan nama naming atribute untuk tipe

dari entry. Tetapi berbicara secara umum, naming atribut untuk object class tertentu

tidak dipaksa untuk menjadi atribut khusus. Dalam definisi object class, beberapa

vendor mengharuskan atribut khusus untuk menjadi naming atribute, tetapi ini bukan

bagian dari LDAP standar. Pada contoh pada gambar 2.10 atribut cn merupakan naming

atribute dari object class orang.

33

Gambar 2.10 Contoh RDN

RDN dapat dibentuk menggunakan beberapa tipe atribut pada entry yang

memiliki nilai yang unik diantara entry yang lain dalam sebuah container. Meskipun

aturan ini kelihatan membingungkan. Aturan ini memberikan user keleluasaan untuk

mengenali sebuah entry dalam bentuk yang tidak terduga. Bicara secara umum,

pengecekan schema harus memastikan bahwa setiap entry baru atau pengubahan

terhadap entry yang telah ada meninggalkan entry paling tidak dengan sebuah RDN

yang unik, sehingga entry tersebut memiliki nama yang unik. Beberapa implementasi

dari LDAP melakukan standarisasi naming atribute untuk beberapa object class yang

telah diberikan; dan dalam kasus, atribut yang ditunjuk sebagai naming atribute harus

menemukan aturan unik yang schema checker paksakan. Salah satu jalan, ada jaminan

untuk setiap entry memiliki nama yang unik melewati direktori (Arkills, 2003).

34

Tabel 2.3 Atribut umum yang digunakan sebagai Naming atribute

Penggunaan lebih dari satu atribut juga diijinkan dalam RDN. Ini dinamakan

multivalued RDN. Fungsi ini mengijinkan user untuk merincikan sebuah entry yang unik

dengan sebuah titik potong dari nilai dua atribut ketika nilai satu atau kedua atribut tidak

menemui kebutuhan unik. Sebagai contoh, berdasar situasi yang digambarkan pada

gambar 2.11. ada dua people dengan nomor telepon yang sama, dan dua people dengan

nama keluarga yang sama. Dalam hal ini tidak bisa digunakan atribut baik nomor

telepon maupun nama keluarga untuk menunjuk entry Luke Skywalker secara unik,

tetapi gabungan kedua atribut akan mencitakan kombinasi yang unik RDN akan menjadi

sn=Skywalker+telephoneNumber=+1 222 222 2222. Tentu saja, dalam kasus ini

dapat lebih mudah menggunakan cn=Luke Skywalker sebagai RDN.

35

Gambar 2.11 Contoh multivalued RDN

Distinguish Name (DN) menyediakan nama yang berkualitas untuk setiap entry,

sehingga sangat jelas jika sebuah entry dirujuk, dan juga dimana dalam struktur urutan

tingkatan (hierarchy) sebuah entry ditempatkan. Di bawah perincian LDAP, setiap entry

tidak menyimpan DN-nya, ataupun tidak dengan index direktori yang merupakan DN

dari direktori entry. Sebagai penggantinya, DN terutama digunakan untuk user dari

direktori untuk dapat menunjuk direktrori mana yang entry inginkan. Sebuah DN

ditampilkan dengan operasi permintaan dari client, dan direktori kelihatan dinamis saat

dilihat ketika sebuah entry sama dengan DN yang dikabarkan.

Membuat DN dapat menjadi sedikit sulit karena user harus tahu RDN dari semua

container diatas entry. DN merupakan sebuah susunan string RDN dari entry

berhubungan dengan container RDN dari entry berhubungan dengan setiap RDN dari

setiap container diatas container tersebut. Dengan kata lain DN adalah susunan RDN

36

dari entry yang berhubungan dengan DN dari container itu sendiri. Seperti digambarkan

pada gambar 2.11 entry bagian kanan mempunyai dua kemungkinan DN (Arkills, 2003):

cn=Luke Skywalker,ou=People,dc=mycompany,dc=com

atau

sn=Skywalker+telephoneNumber=+1 222 222

2222,ou=People,dc=mycompany,dc=com

User harus mengolah beberapa karakter khusus ketika menggunakan sebuah DN.

Karakter khusus ini dapat disimpan dalam bentuk nilai naming atribute tanpa karakter

escape; tetapi ketika merujuk pada karakter ini dalam sebuah DN, user harus

melepaskannya. User secara khusus menotasi karakter ini dengan menempatkan lebih

dahulu sebuah karakter backslash (\) untuk menghindari kesalahan dalam pengartian. Ini

sering kali disebut commenting atau escaping. Sebagai contoh, menandai sebuah DN

dengan RDN yang memiliki sebuah koma dalam nilainya akan menyebabkan

kebingungan karena direktori menggunakan koma di dalam DN untuk memisahkan

komponen DN. Pengolahan karakter digambarkan dalam tabel 2.4 khususnya dalam

pengubahannya dalam DN (Arkills, 2003).

Tabel 2.4 Karakter khusus dalam Distinguish name

37

Ketika menggunakan web browser sebagai client dari LDAP maka harus

menggunakan sebuah format nama yang khusus. Kebanyakan web browser saat ini

sudah mendukung fungsi client LDAP. Sebagai hasil fungsi search dapat digunakan

dengan mudah melalui browser. Format nama dalam URL LDAP secara penuh

dibicarakan dalam RFC 2255. format ini hampir tidak ada perubahan dibandingkan

dengan client standar LDAP. URL mempunyai satu set karakter khusus yang harus

dioperasikan dengan cara yang khusus seperti yang ditunjukkan dalam RFC 1738, dan

menampung format yang berbeda. Format nama LDAP-URL tidak secara khusus

digunakan oleh web browser; standar client LDAP juga harus dapat menggunakannya

untuk mendukung acuannya.

Sebuah URL LDAP dimulai dengan penunjukan ldap://, diikuti dengan

hostname dan port dari direktori server, kemudian base DN dan penunjuk lainnya,

seperti scope, filter, dan atribut yang diinginkan. Sintaknya menjadi (Arkills, 2003):

ldap://[hostname][/dn[?[attributes][?[scope]

[?[filter][?[extensions]]]]]

Komponen dari sintak adalah :

• Hostname – merincikan dari server LDAP dan port TCP/IP yang digunakan

server LDAP. Ditandai dengan kurung besar, baik hostname maupun port

adalah sebuah pilihan. Port standar yang digunakan adalah 389 ketika port

tidak dirincikan. Ketika hostname tidak dirincikan, client pasti memiliki

pengetahuan sebelumnya server mana yang dihubungi. Pemisahan hostname

dengan port adalah dengan titik dua, mycompany.com:389, seperti dirincikan

dalam RFC 1738.

38

• DN – komponen DN merincikan base perbedaan nama untuk operasi search.

• Attributes – komponen atribut merincikan tipe atribut yang dikembalikan dari

entry yang sama dengan parameter search. Jika tersisa yang tidak diketahui

maka semua atribut dikembalikan.

• Scope – komponen scope merincikan batasan entry direktori yang

dikembalikan. Sama dengan tipe search LDAP, base, one, dan sub adalah

nilai yang mungkin dipakai. Jika nilai tidak dirincikan maka diasumsikan

menggunakan sub.

• Filter – komponen filter merincikan batasan filter untuk entry mana yang

harus dikembalikan. Ini menggunakan sintaks yang sama dengan tipe search

LDAP. Jika tidak dirincikan, maka diasumsikan menggunakan

(objectclass=*), sehingga semua entry dikembalikan.

• Extension – komponen extension merincikan pilihan extension dari URL

LDAP. Extension ini dapat didefinisikan ketika dibutuhkan, dan ini

seharusnya tidak bersesuaian dengan operasi perluasan dari LDAP. Hanya

satu jenis extension yang telah distandarisasi dinamakan bindname extension.

Bindname extension mengijinkan client untuk merincikan DN dari direktori

entry yang digunakan untuk mengesahkan direktori. Setelah pengesahan

tantangan berikutnya adalah memulainya.

Ini merupakan contoh dari URL LDAP (Arkills, 2003):

ldap://mycompany.com:389/cn=Brian

Arkills,ou=People,dc=Mycompany,dc=com?sn

39

Seperti contoh yang diberikan pada gambar 2.10, hasil operasi search diatas akan

mengembalikan atribut sn dari entry cn=Brian

Arkills,ou=People,dc=mycompany,dc=com. Hasil search mempunyai jangkauan

subtree, tetapi entry yang dirincikan base DN tidak mempunyai child, sehingga hanya

satu entry yang dikembalikan.

2.3.3.2 Client LDAP Operation

Menurut Arkills (2003), ketika membuat struktur namespace merupakan hal

yang sangat penting untuk administrator direktori, operasi LDAP adalah pusat dari

interaksi antara client dan server. Operasi LDAP dikarenakan tipe user seperti apa yang

dibutuhkan dalam direktori untuk diketahui, meskipun software client yang bagus

meringkaskan pada saat terjadi interaksi dari tampilan. User mungkin hanya

memerlukan operasi search, yang terjadi pada kebanyakan operasi perincian. Ada

sepuluh operasi utama yang dijabarkan oleh standar LDAP. Administrator dan

programmer menggunakan keseluruhannya ketika mengatur informasi direktori dan

membuat proses bisnis khusus yang berinteraksi dengan informasi direktori.

Salah satu topik paling nyata yang termasuk interaksi client-server adalah client

LDAP itu sendiri. Software client merupakan kunci untuk people menemukan direktori

LDAP yang berguna dan mudah untuk digunakan.

40

2.3.3.2.1 Directory Enable Services and Aplication

Menurut Arkills (2003), banyak keuntungan aplikasi datang dari kemampuan

aplikasi tersebut untuk berhubungan dengan direktori untuk mendapatkan informasi.

Sebuah aplikasi atau servis yang dapat menjadi client LDAP disebut dengan directory-

enabled.

Diantara aplikasi directory-enabled yang paling umum adalah servis email.

Ketika sebuah server email menerima email. Server dapat melakukan query pada

direktori apakah alamat email penerima berada pada site lokal dan apakah mail server

tempat mailbox penerima aktif. Memusatkan informasi ini pada direktori mempermudah

administrasi dari server email dengan menghilangkan kebutuhan untuk menyelaraskan

copy dari informasi ini pada setiap email server.

Hal yang serupa, email client dapat menjadi directory-enabled, dan menyediakan

servis yang berharga dengan mencari alamat email yang dituju yang memberikan nama

seseorang. Beberapa email client mengijinkan user untuk melihat direktori lewat sebuah

tampilan di dalam aplikasi email dan membawa lebih dari satu penerima untuk sebuah

email.

Servis directory-enabled mempunyai beberapa batasan. Sebagai contoh,

penggunaan direktori LDAP (Arkills, 2003).

• Sebagai penyimpan sertifikat wewenang berhubungan dengan teknologi sertifikat

public-private. Ini mengijinkan untuk menyediakan sebuah servis untuk menguji

kevalidan dari sertifikat yang ada.

41

• Untuk menggolongkan lokasi dari HTML dan tipe lain dari dokumen elektronik.

Kemudian dapat melakukan query dan mengembalikan rincian dokumen yang

pantas, hanya akan seperti katalog perpustakaan yang akan melakukan.

Implementasi LDAP Microsoft Active Directory adalah contoh yang baik dari

bagaimana keragaman dari servis directory-enabled dapat disatukan. Dengan

menggunakan Microsoft Active Directory, software dapat disebarkan pada komputer,

user, dan pengaturan komputer dapat diatur, printer dapat dipromosikan sebagai client,

dll. Jelasnya ada keuntungan yang berpengaruh dengan memusatkan informasi dalam

sebuah direktori, khususnya informasi yang menolong dalam mengatur resource.

Mycompany mudahnya memerlukan kreatifitas dan penyatuan servis yang mengambil

keuntungan dari direktori untuk merealisasikan kemampuannya.

2.3.3.2.2. Search

Menurut Arkills (2003), semua operasi LDAP terdiri dari client yang

mengirimkan operasi request sepanjang dengan parameter ke server. Server kemudian

menjalankan operasi dan mengirimkan sebuah kode hasil kembali ke client. Kode yang

dikembalikan ini menandakan sukses atau gagalnya sebuah operasi. Ketika sebuah

operasi adalah operasi search, server mengirimkan semua entry yang cocok dengan

parameter yang lalu mengirimkan kode hasilnya. Tidak ada yang namanya operasi read,

sehingga jika direktori user ingin membaca sebuah direktori yang khusus, maka harus

dijalankan operasi search yang memerinci entry.

Operasi search mempunyai banyak parameter yang mengubah bagaimana server

menjalankan operasi. Ini merupakan parameter wajib yang dibutuhkan atau operasi

42

search akan gagal, dan ada beberapa parameter tambahan yang memiliki nilai default

jika tidak diatur. Parameter search hanya mempengaruhi sebuah operasi search untuk

yang telah diatur. Untuk mengubah semua operasi LDAP untuk sebuah session, harus

menggunakan LDAP option, jika ada salah satu yang sesuai.

Ada beberapa parameter search yang wajib, diantaranya adalah (Arkills, 2003):

• Base DN untuk memulai search – sebuah ide bagaimana direktori dibentuk

sangat membantu disini. Dengan kata lain, jika ingin mencari person entry,

apakah semuanya dalam container yang umum? Base DN terkadang juga disebut

baseObject. Jika tidak tahu dari mana harus mulai, maka mulailah dari direktori

root. Dalam direktori mycompany, ini akan seperti dc=mycompany,dc=com. Jadi

pada saat yang paling minimum, harus mengetahui naming context dari direktori.

• Scope dari search – ada tiga pilihan untuk scope. Scope base berarti hanya

mencari satu entry tunggal pada base DN. Scope one berarti mencari semua entry

pada level yang sama pada urutan tingkatan dalam container dari base DN.

Scope subtree berarti mencari base DN dan semua entry di bawah base DN,

bagaimanapun juga tergantung dari level di dalam urutan tingkatan.

• Search filter – search filter disusun dari sebuah tipe atribut, sebuah comparison

operator, dan sebuah nilai atribut. Ketiga komponen ini dikelilingi dengan tanda

kurung dan bentuk sebuah objek search filter. Sintaks yang sederhana dari objek

search filter adalah "("attributetype operator attributevalue")" dengan tidak ada

spasi diantara semua elemen yang wajib. Tanda kutip yang mengelilingi

merupakan hal yang mutlak dalam sintaks. Sebagai contoh, (objectclass=person)

akan menjadi objek search filter yang valid. Satu atau lebih objek search filter

43

dapat digabungkan dengan operator filter untuk membentuk search filter, jadi

contoh ini merupakan sebuah search filter yang valid.

Untuk mengilustrasikan penggunaan sebuah search filter, jika ingin menemukan

sebuah entry yang digambarkan pada gambar 2.12 maka parameter search yang

digunakan adalah :

Gambar 2.12 Mycompany dengan entry person

Objek filter dapat digabungkan dalam parameter search filter dengan

menggunakan filter operator. Filter operator dapat mengubah sebuah objek filter yang

telah dirincikan dalam parameter search filter, dan dapat digunakan untuk

menggabungkan banyak filter untuk menandakan keruwetan dari pengaturan banyak

entry.

Filter operator yang ada adalah (Arkills, 2003):

44

• & AND

• | OR

• ! NOT

Operator ini harus mendahului filter yang diubah. Langkahnya hampir sama

dengan bagaimana fungsi dalam bahasa LISP atau operasi dalam mengembalikan polish

kalkulator yang diwakilkan. Filter yang berikutnya mengilustrasikan penggunaan dari

filter operator dengan direktori ditunjukkan pada gambar 2.13 semua contoh mengira

menyediakan sebuah base DN pada root dari direktori, sepanjang dengan scope subtree.

Gambar 2.13 Contoh mycompany untuk pencarian filter operator

Pilihan parameter search adalah (Arkills, 2003):

45

• Informasi atribut apa yang dikembalikan – jika tidak merincikan apa yang

diinginkan, semua atribut dari entry yang ditemukan oleh server akan

dikembalikan. Perincian tipe atribut dapat dipisahkan dengan tanda koma.

Operational attribute, dimana atribut yang digunakan direktori untuk

kepentingannya sendiri, tidak pernah dikembalikan kecuali dirincikan secara

explisit.

• derefAliases – menunjukkan bagaimana cara bertransaksi dengan alias entry.

Alias entry adalah sebuah dummy entry yang merujuk atau mengarah pada entry

yang lain. Menghormati sebuah alias adalah dengan mudah mengajarkan server

untuk pergi pada objek yang dirujuk oleh alias, dan untuk tujuan dari operasi

search, memperlakukan objek yang dirujuk sebagai alias object.

- neverDerefAliases - jangan melihat pada alias yang dirujuk.

- derefInSearching - melihat semua alias yang dirujuk kecuali pada

baseObject.

- derefFindingBaseObj - melihat pada alias yang dirujuk tetapi hanya pada

baseObject.

- derefAlways – melihat pada semua alias yang dirujuk.

• sizeLimit – batas angka dari entry yang dikembalikan pada operasi search. Nilai

default-nya adalah 0 yang menunjuk pada tidak ada batasan. Jika suatu operasi

search menemukan entry lebih dari pada yang dirincikan sebagai batasan, hanya

kumpulan angka pertama yang dikembalikan. Dalam kasus ini, kode hasil dari

46

LDAP_SIZELIMIT_EXCEEDED dikembalikan untuk menunjuk bahwa terdapat

hasil yang lebih banyak.

• timeLimit – batasan waktu dalam detik diijinkan untuk menyelesaikan sebuah

operasi search. Nilai default-nya adalah 0 yang menunjuk pada tidak adanya

batasan. Jika sebuah operasi search membutuhkan waktu lebih lama untuk

diselesaikan dibandingkan dengan waktu yang ditentukan, operasi akan selesai

pada waktu yang ditentukan. Hanya entry yang ditemukan pada kurun waktu ini

yang dikembalikan. Pada kasus ini, kode hasil dari

LDAP_TIMELIMIT_EXCEEDED dikembalikan untuk menunjukkan hasil yang

diperoleh lebih besar. Beberapa implementasi dari server LDAP mengijinkan

administrator direktori untuk mengatur kewajiban menaikkan timeLimit untuk

semua operasi cient. Beberapa server LDAP memiliki user khusus yang dapat

menggantikan batas waktu server. Client dapat mengatur batasan dengan nilai

lebih rendah, tetapi batasan lebih besar daripada batasan server yang diabaikan.

• typesOnly – jika diatur menjadi true, hasilnya akan merinci hanya tipe atribut,

bukan nilainya. Nilai default dari false adalah untuk menunjukkan bahwa tipe

atrubut dan nilainya harus dikembalikan.

Dalam penambahan pada operator filter, operator yang lain, disebut match operator atau

comparison operator, dapat mengubah search filter. Kebanyakan dokumen pada pokok

permasalahan ini membingungkan match operator dengan filter operator. Tetapi match

operator tidak bekerja pada seluruh ekspresi filter, hanya pada nilai atribut. Match

operator biasanya merupakan operator matematika umum, seperti equality, atau greater

47

than atau equal. Match operator digunakan untuk menolong untuk menandakan entry

yang cocok dengan nilai parameter atribut yang diinginkan. Operasi digunakan untuk

mencocokkan perubahan tergantung dari tipe khusus dari data yang disimpan dalam

atribut. Kebanyakan atribut menyimpan beberapa tipe dari nilai string, dengan kata lain

text. Oleh karena itu, kebanyakan operator match yang umum akan menggunakan

operator match string. Ini adalah beberapa operator match string (Arkills, 2003):

• = Equality

• <= Less than or equal to - (sn<=Arkills) akan entry huruf sebelumnya pada

Arkills dengan tambahan pada Arkill, sebagai contoh sn=Adams. Sebagai

catatan dalam menggabungkan dengan bukan operator filter, pembuatan

operasi greater-than dengan tidak memasukkan entry yang sama.

• >= Greater than or equal to - (sn>=Arkills) akan mengembalikan entry

setelah Arkill ditambahkan pada Arkill, sebagai contoh sn=Chewbacca.

Sebagai catatan dalam menggabungkan dengan bukan operator filter, dapat

menciptakan operasi less-than

• ~= approximate - (sn~=Cat) akan mengembalikan entry seperti sn=Scat,

sn=Cast, sn=Hat, dan sn=Mat. Algoritma dipergunakan untuk

memperkirakan kecocokan berbagai macam filter tergantung dari

implementasinya. Biasanya sebuah karakter wildcard diijinkan dalam

beberapa posisi, tapi ini tidak distandarisasi, dan pendekatan match operator

tidak selalu diimplementasi.

48

Akhirnya, asterisk (*) dapat digunakan sebagai wildcard untuk kosong atau lebih

karakter dalam nilai sebuah string. Wildcard digunakan untuk mengetahui keberadaan

dari atribut atau dalam kombinasi dengan karakter lain untuk menemukan substrings.

Dalam contoh yang ditunjukkan pada gambar di bawah ini, search filter dari

(cn=*Skywalker) akan mengembalikan entry baik Luke dan Anakin Skywalker. Baik

kehadiran dan kemampuan substring yang dimiliki wildcard sangat berguna.

Gambar 2.14 Contoh direktori untuk pencocokan wildcard

49

2.3.3.2.3 LDAP protocol

Menurut Arkills (2003), pembahasan LDAP client-server memperkecil proses

pengeluaran dari client. Server bertanggung jawab untuk menjalankan operasi yang

diminta dan melakukan proses pengisisan, ketika memenuhi permintaan client. Dalam

model client-server, sever dibuat untuk menangani masukan perhitungan yang besar,

dengan proses dan kapasitas memori yang lebih besar, ketika client mempunyai sedikit

kemampuan perhitungan. Setelah server melakukan operasi permintaan, client menerima

response atau error dari server. Client mempunyai sedikit pekerjaan selain mengirimkan

request dan menerima jawaban.

Tabel 2.5 Karakter search filter khusus

LDAP didasarkan pada pesan, sehingga client dapat membuat banyak request

dalam satu session. Banyak operasi dari session yang sama, masing-masing menerima

perhatian dari server pada saat yang sama, dan karena itu keputusan yang baik dalam

bekerja dapat dijalankan secara bersamaan. Banyak session dari client yang sama juga

dimungkinkan pada saat yang sama, sehingga satu client dapat berhubungan dengan

lebih dari satu server LDAP.

Jika sebuah client mengirimkan sebuah search request yang mengembalikan

beberapa entry, beberapa pesan juga dikembalikan pada client. Setiap pengembalian

50

entry dibatasi dengan pemisahan pesan pada client; dan ketika semua entry

dikembalikan, pesan kode hasil terakhir dikirimkan pada client. Seharusnya sebuah

penyerahan dikembalikan, kemudian tergantung dari setting aplikasi, tambahan lalu-

lintas client atau server menghasilkan kode hasil terakhir yang sebelumnya menandakan

penyelesaian dari operasi. Asynchronous LDAP API mengubah kebiasaan ini.

LDAP transport membuat banyak efisiensi dalam penggunaan lalu-lintas

jaringan. LDAP menggunakan TCP/IP untuk komunikasi jaringan. TCP/IP merupakan

prosesor dan memori yang khusus, dengan pengecekan kesalahan dibuat dalam sebuah

protokol, ini merupakan bagian yang paling efisien untuk session untuk lebih dari

panjang yang sederhana. Nyala dan matinya dari session TCP dapat menjadi sangat

mahal dalam penggunaan komputer dan resource jaringan. Kemampuan untuk

menjalankan banyak operasi membuat LDAP memiliki kemampuan untuk penggunaan

yang lebih baik dari resource komunikasi.

Hubungan client-server biasanya mengikuti pola ini (Arkills, 2003):

• Client berhubungan dengan server dan meminta sebuah bind operation.

• Server mengembalikan bind operation mengembalikan kode (sukses atau

proses berakhir disini)

• Client meminta sebuah search operation (atau beberapa operasi yang lain)

• Server mengembalikan pesan dengan menempatkan satu entry atau banyak

entry dari search operation. Jika tidak ada entry yang ditemukan, tidak ada

pesan entry yang dikirimkan.

• Server mengirimkan kode hasil search operation pada client

• Client meminta sebuah unbind operation

51

• Server mengirimkan kode hasil unbind dan menutup hubungan

Sebagai catatan bahwa kode hasil adalah penting, karena itu tanda dari penyelesaian

sebuah operasi sejauh mana server menaruh perhatian.

Ada satu bentuk hubungan dengan direktori LDAP yang menggunakan

pengurangan komunikasi yang tetap daripada protokol LDAP tradisional yang

mendasarkan pada TCP yang saling mempengaruhi. Bentuk ini disebut sebagai

connectionless LDAP, terkadang disingkat sebagai CLDAP. RFC 1798 mendefinisikan

CLDAP, yang menggunakan UDP dibanding TCP. Transaksi CLDAP dapat

menggunakan tiga paket jaringan lebih sedikit dibandingkan LDAP. CLDAP lebih lanjut

mempermudah model direktori dengan membatasi jumlah operasi yang dijalankan.

CLDAP secara utama dimaksudkan untuk penggunaan client yang sangat mudah yang

membutuhkan pencarian informasi secara cepat pada direktori.

Ada sepuluh operasi yang dibuat dalam LDAP untuk keperluan berinteraksi

dengan direktori. Batasan angka dalam operasi berarti baik client maupun server dapat

dengan mudah diimplementasi dan membutuhkan batasan resource.

Operasi bind merupakan request pertama dari client pada server. Binding adalah

tugas yang sama seperti pengecekan wewenang dari direktori. Client menguji identitas

yang dikirimkan pada direktori, sehingga semua operasi yang akan dilakukan

selanjutnya dapat dilakukan dalam konteks identitas tersebut. Client yang tidak

melakukan bind, atau melakukan bind dengan string kosong, disebut sebagai

anonymous.

Operasi search sudah dibahas sebelumnya. Operasi compare secara sederhana

mengecek apakah informasi yang ditinggalkan client cocok dengan informasi yang

disimpan dalam direktori. Operasi add mengijinkan client untuk membuat satu entry

52

baru. Operasi ini memerlukan penjelasan client tentang object class yang terdapat pada

entry yang baru, dan semua kewajiban atribut dari object class disediakan dengan

nilainya. Sebagai contoh adalah operasi add pada direktori mycompany (Arkills, 2003):

Operasi delete menghapus sebuah entry dari direktori. Semua informasi yang

berkaitan dengan entry tersebut akan dihapus. Sebagai contoh operasi delete adalah

(Arkills, 2003):

Operasi modify adalah operasi mengubah atribut yang telah ada dalam sebuah

entry, menghapus nilai atribut, atau menambah sebuah nilai pada satu atau lebih atribut.

Sebagai contoh operasi modify adalah (Arkills, 2003):

Operasi modifyRDN mengijinkan client untuk mengganti nama dari entry

direktori. Ada empat parameter yang digunakan. Untuk lebih jelasnya perhatikan contoh

berikut (Arkills, 2003):

Pada direktori akan terlihat seperti gambar berikut ini (Arkills, 2003):

53

Gambar 2.15 Penggunaan modifyRDN untuk hanya mengubah RDN

Operasi unbind mengijinkan client untuk mengakhiri session yang telah ada dengan

direktori. Operasi abandon mengijinkan client untuk mengatakan pada direktori untuk

menggagalkan operasi sebelumnya yang diminta secara khusus oleh client. Operasi

extended adalah sebuah pemegang keputusan untuk implementasi direktori secara

khusus untuk menyampaikan kegunaan dari direktori, tetapi masih memiliki sintaks

yang telah didefinisikan sebelumnya untuk melakukan ini.

2.3.3.3 LDAP Schema

Menurut Arkills (2003), schema menentukan aturan yang menguasai sebagian

besar dari apa yang direktori LDAP dapat lakukan. Schema menentukan jenis apa dari

entry yang dapat dibuat dalam direktori. Ini menentukan informasi apa yang dapat

disimpan. Jadi pengubahan schema dapat meningkatkan lebih besar nilai dari direktori

LDAP dan fleksibilitasnya.

54

Pengubahan schema untuk mengijinkan sebuah tipe baru dari objek atau sebuah

tipe atribut baru. Ini berdampak pada pembuatan tipe bari dari sebuah entry yang dapat

ditambah lebih banyak pada fungsi dari direktori itu sendiri.

Schema terdiri dari beberapa komponen. Pada gambar di bawah ini ditunjukkan

bagaimana setiap elemen dari schema berhubungan dalam konteks dari schema.

Gambar 2.16 Diagram konseptual dari schema

55

Sebuah object class menentukan jenis entry yang diperbolehkan dalam direktori.

Sebuah object class mendefinisikan aturan konten, aturan struktur, bentuk nama , dan

informasi tambahan operasional.

2.3.3.4 Directory management

Menurut Arkills (2003), menggabungkan informasi ke dalam sebuah direktori

adalah alasan utama dari pengimplementasian LDAP. Kontrol administratif mengijinkan

administrator sebuah direktori untuk lebih mudah mengatur direktori LDAP yang oleh

karena itu berhubungan dengan nilai bisnis yang disediakan oleh LDAP.

2.3.3.4.1 Directory security

Menurut Arkills (2003), Autentication adalah sebuah proses yang menyatakan

dan menegaskan siapa sebenarnya user, dengan kata lain ini membangun identitas dari

client. Secara praktek identitas ini biasanya adalah sebuah username, user identity (uid),

tiket, atau sertifikat.

Menurut Arkills (2003), Authorization adalah sebuah proses pembangunan

dimana sebuah client diotorisasi untuk mengakses resource. Proses ini dapat ditentukan

dengan kombinasi dari faktor access control seperti authentication identity, source IP,

kekuatan enkripsi, metode autentikasi, operasi request, dan sumber request.

56

Tabel 2.5 Tipe aturan akses direktori

Certificate memetakan sebuah public key pada sebuah identitas. Sedangkan

sebuah Certificate Authority (CA) adalah wewenang dari bagian lain yang dapat

dipercaya. Sebagai contoh agar lebih jelas dapat dilihat pada gambar di bawah ini.

Gambar 2.17 CA dengan Certificate

57

Secure Socket Layer (SSL) menggabungkan enkripsi public dan secret key. SSL

juga dapat digunakan untuk mengenkripsi sebuah servis session antara banya dua

bagian. Transport Layer Security (TLS) merupakan turunan dari SSL. TLS juga

merupakan sebuah standar untuk internet, hal ini didefinisikan dalam RFC 2246.

2.4 Single Sign On (SSO)

2.4.1 Pengertian Single Sign On (SSO)

Single sign-on (SSO) adalah sebuah session atau proses autentikasi user yang

mengijinkan user untuk menyediakan sebuah credential sekali dengan maksud untuk

mengakses banyak aplikasi (Wikipedia, 2007n; Kristian Aaslund et al, 2007). Single

sign on (SSO) mengautentikasi user untuk mengakses semua aplikasi yang telah di-

authorized untuk diakses. Ini menghilangkan permintaan authenticaton lagi ketika user

mengganti aplikasi selama session berlaku (Kristian Aaslund et al, 2007). .

2.4.2 Central Authentication Service (CAS)

2.4.2.1 Pengertian CAS

CAS adalah merupakan sebuah sistem autentikasi yang aslinya dibuat oleh

Universitas Yale untuk menyediakan sebuah jalan yang aman untuk sebuah aplikasi

untuk meng-autentikasi seorang user. CAS kemudian diimplementasi sebagai sebuah

open source komponen server Java dan mendukung library dari client untuk Java, PHP,

Perl, Apache, uPortal, dan lainnya. CAS server sebagai sebuah dasar untuk beberapa

framework untuk keamanan dan solusi SSO (Kristian Aaslund et al, 2007).

58

2.4.2.2 Dasar pemikiran

Dalam tahap pembuatannya, CAS memiliki beberapa alasan dasar pemikiran

yang melandasi pembuatan servis ini, diantaranya adalah :

• Untuk memfasilitasi Single Sign On dalam melewati banyak aplikasi web.

Sebagai sebuah servis inti, CAS tidak memerlukan web-based tetapi

memiliki front-end web.

• Untuk mengijikan servis yang tidak dipercaya yang ditawarkan oleh

organization dibandingkan ITS (servis yang dapat dipercaya) untuk

mengautentikasi user tanpa memiliki akses pada password-nya.

• Untuk mempermudah prosedur yang diperlukan aplikasi untuk diikuti dengan

tujuan untuk melakukan autentikasi.

• Untuk membatasi autentikasi yang utama menjadi satu aplikasi web, dimana

mempermudah user untuk menjaga keamanan password-nya dan

mengijinkan aplikasi yang dipercaya untuk mengubah logika autentikasinya

bila perlu, tanpa harus mengubah banyak aplikasi

2.4.2.3 Design CAS

Central Authentication Servise (CAS) dibentuk sebagai sebuah aplikasi web yang

berdiri sendiri. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.

59

Gambar 2.18 Arsitektur CAS

URL login menangani autentikasi yang utama. Karena itu CAS mendorong user

dengan sebuah NetID dan password dan validasinya melawan provider yang mendukung

autentikasi. Pengembang CAS yang berbeda akan menghubungkan bermacam

PasswordHandler untuk mengesahkan username dan password melawan dukungan

mekanisme autentikasi manapun yang selaras.

Untuk mencegah kemungkinan dari pengulangan autentikasi, CAS juga

melakukan usaha untuk mengirimkan sesuatu dalam memory cookie (ini akan hancur

ketika browser ditutup) kembali ke browser. Cookie ini, bisa disebut “ticket-granting

cookie”, mengidentifikasi user sebagai satu yang telah melakukan logged in.

60

2.4.2.4 Menangani servis non-web

Dari perspektif CAS, tidak ada perbedaan yang mencolok antara sebuah web

servis yang menyediakan content-nya sendiri dan yang bergantung pada sebuah back-

end servis. Secara logika, CAS secara sederhana menggabungkan front-end dan back-

end menjadi satu. Bagaimanapun, yang diberikan front-end dan back-end adalah bukan

program yang sama.

Untuk mengikuti desain untuk web aplikasi yang membutuhkan autentikasi user

pada back-end, non-web service. Maka back-end harus diubah, secara umum dapat

dilakukan dengan 3 cara :

• Ini harus dapat mengenali usaha untuk mengautentikasi menggunakan tiket

CAS sebagai pengganti bagian username atau password.

• Ketika tiket dikenali, maka ini harus dapat mengesahkannya dengan langsung

menghubungi server CAS.

• Ketika tiket dikenali, maka ini juga harus mengecek untuk meyakinkan

bahwa tiket dikirimkan dari sebuah host yang sanggup untuk menerima surat

pengesahan wakil.