Thursday, September 11, 2008

integrasi ebox-usersandgroups dgn Apache-Subversion

Subversion adalah sebuah source control system yang dapat menyimpan file apapun. Prinsip kerjanya lebih mirip CVS daripada SourceSafe, dan memang merupakan hasil pengembangan orang-orang yg ingin memperbaiki CVS. Dalam Subversion, kita dapat menyimpan file source code ataupun binary (file PHP atau file Excel, misalnya), memberi akses terpusat ke banyak orang ke file tersebut, memberi access control (siapa yang boleh menulis, siapa yang hanya dapat membaca), mencatat tiap versi dari file (sehingga ada history/log revisi tiap file, diubah oleh siapa, kapan, dan apa pesan perubahannya).
Subversion memiliki fitur integrasi dengan Apache Web Server, sehingga kita dapat memanfaatkan salah satu dari metoda authentication yang tersedia bagi Apache, dan memungkinkan akses ke repository menggunakan protokol HTTP. Ya benar, bisa diakses dengan web browser, tapi hanya akses dasar saja yang dapat dilakukan. Ia juga mendukung protokol WebDAV - yang memungkinkan kita mengakses menggunakan macam-macam software seperti Windows Explorer, Microsoft Excel, Frontpage. Untuk mendapatkan fitur yang lengkap, Subversion repository dapat diakses menggunakan SVN Client seperti TortoiseSVN atau plugin subclipse.
Tadinya, saya gunakan metoda authentication dan access control yang berbasis file teks. Satu file merupakan output htpasswd, yang berisi username dan md5 hash, file yang lain ialah ACL untuk repository tersebut. Meskipun praktis, tetapi proses penambahan user tidak dapat dilakukan oleh orang yang awam.
OK, misalkan kita tidak butuh ACL per direktori, cukuplah ACL per repository. Ada opsi lain yaitu menggunakan autentikasi dan otorisasi LDAP, di mana Apache akan menghubungi server LDAP yang kita tunjuk untuk melakukan autentikasi dan otorisasi. Dan jika kita gunakan OpenLDAP di server yang sama, kita dapat menggunakan ebox - sebuah web-based GUI untuk melakukan administrasi server, termasuk memanage user & group di OpenLDAP server.
Saya menginstall package ebox & ebox-usersandgroups di sebuah VMWare Image Ubuntu Hardy. Btw, package ebox yang digunakan diambil dari situs di luar Ubuntu Package Repository - tambahkan ini di /etc/apt/sources.list anda:
deb http://ppa.launchpad.net/juruen/ubuntu hardy main
Persiapkan sebuah repository di /var/lib/svn :
sudo su
cd /var/lib
mkdir svn
svnadmin create svn
chown -R www-data:www-data svn
Kemudian, modul user and groups diaktifkan(lewat https interface-nya ebox). Berikutnya, lewat https interface pula, buat group reader dan writer. Kita dapat membuat user baru, mengassign user ke kedua group tersebut.

Tambahkan isi berikut ini ke /etc/apache2/conf.d/svn-repository.conf (buat file baru):

<location /svnrepo>
Dav svn
AuthType Basic
AuthName "SVN repository"
AuthBasicProvider ldap
SVNPath /var/lib/svn
AuthLDAPURL "ldap://127.0.0.1:389/dc=ebox"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
<limitexcept GET PROPFIND OPTIONS REPORT>
Require ldap-group cn=writers,ou=Groups,dc=ebox
</limitexcept>
<limit GET PROPFIND OPTIONS REPORT>
Require ldap-group cn=writers,ou=Groups,dc=ebox
Require ldap-group cn=readers,ou=Groups,dc=ebox
</limit>
SVNAutoversioning on
</location>

Restart Apache Service setelah mensave file ini.
That's all...
I hope it works for you too ..

No comments: