Active Directory ile DSpace 7 LDAP Hiyerarşik Kimlik Doğrulaması

Active Directory ile DSpace 7 LDAP Yapılandırması

Mehmet Demirel

Active Directory ile DSpace LDAP Hiyerarşik Kimlik Doğrulaması


Talimatlar:

Bu talimatlar, DSpace 1.5.2'nin Microsoft'un Active Directory ile LDAP Hiyerarşik Kimlik Doğrulaması'nı kullanacak şekilde ayarlanmasını içerir (ancak bu talimatlar, anonim bağlantılara izin vermeyen bir LDAP sunucusu için bunu kurmak isteyen herkese yardımcı olacaktır). LDAP Hiyerarşik Kimlik Doğrulama yöntemi, özellikle ayrı LDAP kapsayıcılarında kullanıcılarınız olduğunda ve farklı kapsayıcılarda oturum açmanız gerektiğinde kullanışlıdır. Örneğin, öğrencileriniz bir kapsayıcıda ve öğretim üyeleri/personel başka bir kapsayıcıda olabilir ve her iki kapsayıcı da kuruluşunuzun LDAP sunucusunun hiyerarşisinde aynı düzey.

Lütfen bu talimatların, giriş yapacak LDAP kullanıcıları için önceden ePerson hesaplarının oluşturulduğunu varsaydığını unutmayın. Giriş sırasında otomatik hesap oluşturmayı test etmedim.

LDAP Hiyerarşik Kimlik Doğrulama yöntemi, dspace.cfg dosyasındaki standart LDAP kimlik doğrulama yönteminin yapılandırma ayarlarından bazılarını kullanır.

Başlamadan önce, LDAP sunucunuzda, kullanıcıları aramak için kullanılabilecek bir genel hesabınızın yapılandırıldığından emin olun. Active Directory, aramalar için anonim bağlantılara izin vermez, bu nedenle, nerede olursa olsun, bağlamayı yapmak ve DSpace kullanıcısını doğru LDAP kapsayıcısında bulmak için bir kullanıcı hesabına ihtiyacınız olacaktır. Bu örnek için, LDAP arama kullanıcısı olarak ldapuser ve LDAP arama kullanıcı şifresi olarak ldappassword kullanarak LDAP sunucusu olarak ldap.example.com'a bağlandığımızı varsayacağım.


DSpace 7 LDAP Kimlik Doğrulamasını Yapılandırma

LDAP, dspace.cfg dosyasında etkinleştirilirse, yeni kullanıcılar, kayıt belirteci gönderilmeden kullanıcı adlarını ve parolalarını girerek kaydolabilirler. Kullanıcıların bir kullanıcı adı ve şifresi yoksa, şimdi olduğu gibi yine de e-posta adresleriyle kaydolabilir ve giriş yapabilirler.

LDAP kullanıcılarına herhangi bir özel ayrıcalık vermek istiyorsanız, netid'i olan kişileri otomatik olarak özel bir gruba koymak için SiteAuthenticator sınıfını genişletmeniz gerekir. Ayrıca belirli e-posta adreslerine özel ayrıcalıklar vermek isteyebilirsiniz. Bunun nasıl yapılacağı hakkında daha fazla bilgi için yukarıdaki Özel Kimlik Doğrulama Kodu bölümüne bakın.

local.cfg veya dspace.cfg dosyanızı aşağıdaki satırlara sahip olacak şekilde düzenleyin:

plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.LDAPHierarchicalAuthentication

authentication-ldap.enable = true

authentication-ldap.provider_url = ldap://ldap.example.com:389/

authentication-ldap.id_field = cn

authentication-ldap.object_context = cn=Users,dc=example,dc=com

authentication-ldap.search_context = dc=example,dc=com

authentication-ldap.email_field = mail

authentication-ldap.surname_field = sn

authentication-ldap.givenname_field = givenName

authentication-ldap.phone_field = telephoneNumber

authentication-ldap.search_scope = 2

authentication-ldap.search.user = cn=ldapuser,cn=Users,dc=example,dc=com

authentication-ldap.search.password = ldappassword

authentication-ldap.netid_email_domain = @example.com

Tomcat'i yeniden başlatın ve oturum açmayı deneyin. Tüm hatalar dspace/logs/dspace.log dosyasına kaydedilecektir.

Notlar:

Bu ayarlar, elbette, ldapuser hesabını oluşturduğunuzu ve Active Directory'deki varsayılan Kullanıcılar kapsayıcısında bıraktığınızı varsayar. ldapuser'ınız oturum açabilmek için arama kullanıcınızın tam ve doğru dizesine sahip olmalıdır.


Aşağıda, farklı yapılandırma parametrelerinin her birinin ne işe yaradığının bir açıklaması verilmiştir:

ldap.enable

Bu ayar, DSpace'de LDAP kimlik doğrulamasını etkinleştirecek veya devre dışı bırakacaktır. Ayar kapalıyken, kullanıcıların e-posta adresleriyle kaydolmaları ve oturum açmaları gerekecektir. Bu ayar açıkken, kullanıcılar LDAP kullanıcı kimlikleri ve şifreleriyle oturum açabilir ve kaydolabilir.

webui.ldap.oto kayıt

Bu, LDAP otomatik kaydını açar veya kapatır. Bu açıkken, ilk oturum açtıklarında LDAP sunucusuna karşı başarılı bir şekilde kimlik doğrulaması yapan herhangi bir kullanıcı için yeni bir EPerson nesnesi oluşturulacaktır. Bu ayar kapalıyken, kullanıcının ldap kullanıcı adını ve şifresini girerek ve formları doldurarak bir EPerson nesnesi almak için önce kaydolması gerekir.

ldap.provider_url = ldap://ldap.myu.edu/o=myu.edu

Bu, kurumunuzun ldap sunucusunun url'sidir. Sonunda /o=myu.edu kısmına ihtiyacınız olabilir veya olmayabilir. Sunucunuz ayrıca ldaps:// protokolünü gerektirebilir.


ldap.id_field = kullanıcı kimliği

Bu, kullanıcı adının depolandığı LDAP dizinindeki benzersiz tanımlayıcı alandır.

ldap.object_context = ou=kişiler,o=myu.edu

Bu, kullanıcının kimliğini doğrularken kullanılan nesne bağlamıdır. ldap.id_field ve kullanıcı adına eklenir. Örneğin uid=kullanıcıadı,ou=kişiler,o=myu.edu. Bunu ldap yapılandırmanıza uyacak şekilde değiştirmeniz gerekecektir.


ldap.search_context = ou=kişiler

Bu, otomatik kayıt için verilerini almak üzere bir kullanıcının ldap nesnesini ararken kullanılan arama bağlamıdır. ldap.autoregister açıkken, bir kullanıcı bir EPerson nesnesi olmadan kimlik doğrulaması yaptığında, onlar için bir tane oluşturabilmemiz için adını ve e-posta adresini almak için ldap dizinini ararız. Bu yüzden, uid=username,ou=people,o=byu.edu'ya karşı kimlik doğrulaması yaptıktan sonra, şimdi [uid=username] üzerinde filtreleme yapmak için ou=people içinde arama yapıyoruz. Genellikle ldap.search_context, ldap.object_context parametresiyle aynıdır. Ancak bu yine ldap sunucu yapılandırmanıza bağlıdır.


ldap.email_field = posta

Bu, kullanıcının e-posta adresinin depolandığı ldap nesne alanıdır. "mail", ldap sunucuları için varsayılan ve en yaygın olanıdır. Mail alanı bulunamazsa, eperson nesnesi oluşturulurken e-posta adresi olarak kullanıcı adı kullanılacaktır.

ldap.surname_field = sn

Bu, kullanıcının soyadının saklandığı ldap nesne alanıdır. "sn" varsayılandır ve ldap sunucuları için en yaygın olanıdır. Alan bulunamazsa, yeni eperson nesnesinde alan boş bırakılacaktır.

ldap.givenname_field = verilenAd

Bu, kullanıcının verilen adlarının depolandığı ldap nesne alanıdır. GivenName alanının farklı ldap örneklerinde ne kadar yaygın olduğundan emin değilim. Alan bulunamazsa, yeni eperson nesnesinde alan boş bırakılacaktır.

ldap.phone_field = telefonNumarası

Bu, kullanıcının telefon numarasının ldap dizininde saklandığı alandır. Alan bulunamazsa, yeni eperson nesnesinde alan boş bırakılacaktır.