Bu yazıda LDAP protokolü ve sunucularını anlatmaktan çok Apache (http://httpd.apache.org/) Web sunucusu üzerinden verilen bir takım servislerin LDAP üzerinden kullanıcı doğrulaması yapacak şekilde nasıl ayarlanabileceklerine değinilmiştir.
Debian kullanıyorsanız, paket yöneticisi ile yüklediğiniz Apache 2.2 sunucunuz aynı zamanda mod_ldap ve mod_authnz_ldap modülleri ile birlikte gelecektir. Bu modüller etkinleştirilirse, Web sunucusu belirlenen URL alanları için LDAP doğrulaması yapar hale getirilebilmektedir.
Debian dağıtımı ile gelen Apache ayar dizini içindeki mods-enabled dizini içinden, mods-available dizini içindeki ldap.load, ldap.conf ve authnz_ldap.load dosyalarına referans verecek şekilde soft-linkler oluşturulmalıdır. Böylece mod_ldap.so ve mod_authnz_ldap.so dinamik kütüphaneleri Apache açılışında yüklenir hale getirilir.
Aşağıdaki Apache konfigürasyon ifadeleri ile kullanıcı doğrulaması bağlamında yapılabileceklere yönelik pratik örnekler verilmiştir.
Belirli bir URL dizinine erişimin LDAP üzerinden kullanıcı doğrulaması yapmaya zorlanması aşağıda örneklenmiştir:
<Location "/internal"> AuthType Basic AuthName "Kullanicilara Yonelik Bolge" AuthBasicProvider ldap AuthLDAPURL "ldap://127.0.0.1/uid=user1,ou=Users,dc=x,dc=y,dc=z?uid?sub?(objectClass=inetOrgPerson)" Require valid-user </location>Apache Web sunucusu üzerinden verilen bir SVN (Subversion) servisi aşağıdaki gibi LDAP üzerinden kullanıcı doğrulaması yapmaya zorlanabilir. (Bu örnekten önce Subversion (SVN) Servislerinin HTTPS Üzerinden Sunulması başlıklı yazıya göz atabilirsiniz.)
<Location /svn/project1> DAV svn SVNPath /disk/svn/project1 AuthzSVNAccessFile /disk/svn/project1/conf/authz Require valid-user AuthType Basic AuthName "Project1 - SVN Repository" AuthBasicProvider ldap AuthLDAPURL "ldap://127.0.0.1/ou=Users,dc=x,dc=y,dc=z?uid?sub?(|(objectClass=inetOrgPerson)(objectClass=simpleSecurityObject))" </Location>Aşağıda ise bir Trac (http://trac.edgewall.org/) servisinin LDAP ile kullanıcı doğrulaması yapar hale getirilmesini örneklemektedir. (Bu örnekten önce Debian Üzerine Trac Kurulumu başlıklı yazıya göz atabilirsiniz.)
<Location /trac/project1> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonInterpreter main PythonOption TracEnv /disk/trac/project1 PythonOption TracUriRoot /trac/project1 SetEnv PYTHON_EGG_CACHE /tmp </Location> <Location "/trac/project1/login"> AuthType Basic AuthName "Project 1 - Trac Interface" AuthBasicProvider ldap AuthLDAPURL "ldap://127.0.0.1/ou=Users,dc=x,dc=y,dc=z?uid?sub?(objectClass=inetOrgPerson)" Require valid-user </location>Örneklediğimiz ortamda Apache Web sunucusu ve LDAP sunucularının aynı makinada olacağı düşünülmüştür. Dolayısıyla ayarlarda görüleceği üzere LDAP URL içinde 127.0.0.1 IP adresine erişim söz konusudur. Apache ve LDAP sunucularının ayrı makinalarda olması durumunda güvenli LDAP bağlantısı (LDAPS) kullanılması önerilmektedir.
Burada yapılan işlem sadece kullanıcı doğrulaması (authentication) yapılarak erişilmek istenen servise erişimin ilk aşamasının yapılmasıdır. Servis özelindeki erişim yetkilerinin (authorization) ele alınması ile ilgili sorumluluk ilgili servise (dolayısıyla sunucusuna) bırakılmıştır.
Linkler:

Hiç yorum yok:
Yorum Gönder