DSpace LDAP Kimlik Doğrulaması

LDAP Yapılandırması

LDAP Kimlik Doğrulaması

LDAP Kimlik Doğrulamasını Etkinleştirme

LDAP Kimlik Doğrulamasını etkinleştirmek için, org.dspace.authenticate.LDAPAuthenticationsınıfın aşağıdaki yapılandırmada AuthenticationMethods'dan biri olarak listelendiğinden emin olmalısınız :

Örnek Değer:

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


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

LDAP etkinleştirilirse, yeni kullanıcılar kayıt jetonu gönderilmeden kullanıcı adlarını ve şifrelerini girerek kaydolabilir. Kullanıcıların bir kullanıcı adı ve şifresi yoksa, yine de aynı e-posta adresleriyle şimdi olduğu gibi kaydolabilir ve giriş yapabilirler.

LDAP kullanıcılarına özel ayrıcalıklar vermek istiyorsanız, ağı olan kişileri otomatik olarak özel bir gruba koymak için istiflenebilir bir kimlik doğrulama yöntemi oluşturun. Ayrıca belirli e-posta adreslerine özel ayrıcalıklar vermek isteyebilirsiniz. Bunun nasıl yapılacağı hakkında daha fazla bilgi için aşağıdaki Özel Kimlik Doğrulama Kodu bölümüne bakın.

LDAP yapılandırmasında gerekli virgüllerin kullanılmasını sağlayın

NOT: DSpace 6'dan itibaren, virgül (,) artık Yapılandırma sisteminde özel bir karakterdir . Bazı LDAP yapılandırmaları virgül içerebileceğinden, her virgülden önce ters eğik çizgi (\) ekleyerek gerekli virgüllerden kaçmaya dikkat etmelisiniz, örn. "\". Authentication-ldap.cfg için yapılandırma referansı aşağıda ek örneklerle güncellenmiştir.

Farklı LDAP yapılandırma parametrelerinin her birinin açıklaması:

authentication-ldap.enable = true


Bilgi Notu:

Bu ayar DSpace'de LDAP kimlik doğrulamasını etkinleştirir veya devre dışı bırakır. Ayar kapalıyken, kullanıcıların kayıt olmaları ve e-posta adresleriyle giriş yapmaları istenecektir. Bu ayar açıkken kullanıcılar LDAP kullanıcı kimlikleri ve şifreleri ile giriş yapabilir ve kayıt olabilir.

Örnek Değer:

authentication-ldap.autoregister = true


Bilgi Notu:

Bu LDAP otomatik kayıt işlemini açar veya kapatır. Bununla birlikte, ilk oturum açtıklarında LDAP sunucusunda başarıyla kimlik doğrulaması yapan tüm kullanıcılar için yeni bir EPerson nesnesi oluşturulur. Bu ayar kapalıyken, kullanıcının önce ldap kullanıcı adını ve şifresini girip formları doldurarak bir EPerson nesnesi almak için kaydolması gerekir.

Örnek Değer:

authentication-ldap.provider_url = ldap://ldap.myu.edu.tr/o=myu.edu.tr\,ou=all

veya

authentication-ldap.provider_url = ldap://ldap.myu.edu.tr:389/

sizinki farklı olabilir.

Bilgi Notu:

Bu, kurumunuzun LDAP sunucusunun URL'sidir. Sonunda /o=myu.edu bölümüne ihtiyacınız olabilir veya olmayabilir. Sunucunuz ayrıca ldaps: // protokolünü de gerektirebilir. (Bu alanın varsayılan değeri yoktur)

NOT: DSpace 6'dan itibaren, virgül (,) artık Yapılandırma sisteminde özel bir karakterdir . Bu nedenle, her virgülden önce ters eğik çizgi (\) ekleyerek bu yapılandırmada gerekli virgüllerden kaçmaya dikkat edin, örneğin "\"


Örnek Değer:

authentication-ldap.starttls = false

Bilgi Notu:

Şifreli bir bağlantı başlatmak için TCP bağlantısı kurduktan sonra StartTLS vermeli miyiz?

Not: Bu (TLS) LDAPS'tan farklıdır:


TLS, düz LDAP için bir tüneldir ve genellikle aynı bağlantı noktasında tanınır (standart LDAP bağlantı noktası: 389)

LDAPS, standart TLS yöntemi lehine onaylanmamış ayrı bir protokoldür  . (standart LDAPS bağlantı noktası: 636)

Örnek Değerler:

authentication-ldap.id_field = uid

veya

authentication-ldap.id_field = cn

Açıklama:

Bu, LDAP dizinindeki kullanıcı adının depolandığı benzersiz tanımlayıcı alanıdır. (Bu alanın varsayılan değeri yoktur)

Örnek Değer:

authentication-ldap.object_context = ou=people\,o=myu.edu


Bilgi Notu:

Bu, kullanıcının kimliğini doğrularken kullanılacak LDAP nesnesi bağlamıdır. DSpace varsayılan olarak kullanıcının kimlik doğrulamasını denemek için kullanıcının DN değerini oluşturmak üzere bu değeri kullanır. İd_field ve kullanıcı adına eklenir . Örneğin uid=username\,ou=people\,o=myu.edu. Bunu, LDAP yapılandırmanıza uyacak şekilde değiştirmeniz gerekir. (Bu alanın varsayılan değeri yoktur)

Kullanıcılarınızın tümü LDAP'de tek bir "object_context" altında DEĞİLSE, bu ayarı yok saymalı ve INSTEAD aşağıdaki Hiyerarşik LDAP Kimlik Doğrulaması ayarlarını kullanmalıdır (özellikle bkz. " search.user" Veya " search.anonymous")

NOT: DSpace 6'dan itibaren, virgül (,) artık Yapılandırma sisteminde özel bir karakterdir . Bu nedenle, her virgülden önce ters eğik çizgi (\) ekleyerek bu yapılandırmada gerekli virgüllerden kaçmaya dikkat edin, örneğin "\,"


Örnek Değer:

authentication-ldap.search_context = ou=people


Bilgi Notu:

Bu, kullanıcının otomatik kayıt için verilerini almak üzere bir LDAP nesnesini ararken kullanılan arama bağlamıdır. İleautoregister=true bir EPerson olmadan kullanıcı kimlik doğrulamasını biz onların adını (almak için LDAP dizinine arama nesnesi olduğunda, id_field) ve e-posta adresi ( email_field) bu yüzden onlar için bir tane oluşturabilirsiniz. Bu yüzden uid = kullanıcı adı, ou = insanlar, o = byu.edu'ya karşı kimlik doğrulaması yaptıktan sonra şimdi [uid = kullanıcı adı] 'na filtre uygulamak için ou = insanları ararız . Genellikle parametre ile search_contextaynıdır object_context. Ancak yine de bu LDAP sunucusu yapılandırmanıza bağlıdır. (Bu alanın varsayılan değeri yoktur ve ya search.anonymous=trueda belirtildiğinde belirtilmelidir ZORUNLU search.user).


NOT: DSpace 6'dan itibaren, virgül (,) artık Yapılandırma sisteminde özel bir karakterdir . Bu nedenle, her virgülden önce ters eğik çizgi (\) ekleyerek bu yapılandırmada gerekli virgüllerden kaçmaya dikkat edin, örneğin "\,"


Örnek Değer:

authentication-ldap.email_field = mail


Bilgi Notu:

Bu, kullanıcının e-posta adresinin depolandığı LDAP nesne alanıdır. "posta" LDAP sunucuları için en yaygın olanıdır. (Bu alanın varsayılan değeri yoktur)

"Email_field" belirtilmezse veya kullanıcının LDAP'de e-posta adresi yoksa kullanıcı adı (id_field değeri) DSpace'de e-posta olarak kaydedilir (veya belirtildiğinde eklenir netid_email_domain)

Örnek Değer: authentication-ldap.netid_email_domain = @example.com

Bilgi Notu:

LDAP sunucunuzda bir kullanıcı için e-posta adresi yoksa (örn. Hayır email_field), e-posta alanınızı belirtmek için aşağıdaki alanı kullanabilirsiniz. Bu değer, id_fieldbir e-posta adresi (daha sonra DSpace EPerson'da saklanır) oluşturmak için netid ( ) öğesine eklenir . Örneğin, 'user' ve bir NetID netid_email_domainolarak olmak için kullanıcının e-posta kuracak [email protected]@example.com

Lütfen dikkat: bu alan yalnızca " email_field" belirtilmemişse VEYA söz konusu kullanıcının LDAP'de kayıtlı e-posta adresi yoksa kullanılacaktır. Hem " email_field" hem de " " netid_email_domainbelirtilmezse, " id_field" e-posta adresi olarak kullanılır.


Örnek Değer:

authentication-ldap.surname_field = sn


Bilgi Notu:

Bu, kullanıcının soyadının depolandığı LDAP nesne alanıdır. " sn", LDAP sunucuları için en yaygın olanıdır. Alan bulunamazsa, yeni eperson nesnesinde alan boş bırakılır. (Bu alanın varsayılan değeri yoktur)

Örnek Değer:

authentication-ldap.givenname_field = givenName


Bilgi Notu:

Bu, kullanıcıya verilen adların depolandığı LDAP nesne alanıdır. Verilen LDAP alanının farklı LDAP örneklerinde ne kadar yaygın olduğundan emin değilim. Alan bulunamazsa, yeni eperson nesnesinde alan boş bırakılır. (Bu alanın varsayılan değeri yoktur)


Örnek Değer:

authentication-ldap.phone_field = telephoneNumber


Bilgi Notu:

Bu, kullanıcının telefon numarasının LDAP dizininde depolandığı alandır. Alan bulunamazsa, yeni eperson nesnesinde alan boş bırakılır. (Bu alanın varsayılan değeri yoktur)


Örnek Değer:

authentication-ldap.login.specialgroup = group-name


Bilgi Notu:

Belirtilirse, LDAP aracılığıyla başarıyla oturum açan tüm kullanıcı oturumları otomatik olarak bu DSpace Grubunun üyesi olur (geçerli oturumlarının geri kalanı için). Bu DSpace Grubu zaten mevcut olmalıdır (otomatik olarak oluşturulmayacaktır).

Bu, tüm dahili kimliği doğrulanmış kullanıcılardan oluşan bir DSpace Grubunun olmasını istiyorsanız kullanışlıdır. Bu DSpace Grubu daha sonra LDAP aracılığıyla kimlik doğrulaması yapan tüm kullanıcılara özel izinler vermek için kullanılabilir (örn. LDAP aracılığıyla kimliği doğrulanan herkesin yalnızca kampüs koleksiyonlarında veya benzeri özel görüntülemesine izin verebilirsiniz)


Örnek Değer: authentication-ldap.login.groupmap.1 = ou=Students:ALL_STUDENTS 

authentication-ldap.login.groupmap.2 = ou=Employees:ALL_EMPLOYEES 

authentication-ldap.login.groupmap.3 = ou=Faculty:ALL_FACULTY 

Bilgi Notu:

Değerin sol kısmı (":" öncesinde) kullanıcının DN'sinin bir kısmına karşılık gelmelidir (" login.group.attribute" belirtilmedikçe lütfen aşağıya bakın). Değerin sağ kısmı mevcut bir DSpace grubunun adına karşılık gelir.


Örneğin, LDAP içindeki kimliği doğrulanmış kullanıcının DN'si aşağıdaki biçimde ise:

cn=jdoe,OU=Students,OU=Users,dc=example,dc=edu


söz konusu kullanıcı, geçerli oturumlarının geri kalanında ALL_STUDENTS DSpace grubuna atanır.


Ancak, aynı kullanıcı daha sonra mezun olursa ve üniversite tarafından istihdam ediliyorsa, LDAP'deki DN'si şu şekilde değişebilir:


cn=jdoe,OU=Employees,OU=Users,dc=example,dc=edu


Bu DN değişikliğinden sonra DSpace oturumu açıldıktan sonra, kimliği doğrulanan kullanıcı geçerli oturumlarının geri kalanı için ALL_EMPLOYEES DSpace grubuna atanacaktır.

Not: Bu seçenek, tüm LDAP kullanıcılarını tek bir DSpace grubuna yerleştirecek login.specialgroup seçeneğinden bağımsız olarak kullanılabilir. Her iki seçenek birlikte kullanılabilir.


Örnek Değer: authentication-ldap.login.groupmap.attribute = group

Bilgi Notu:

" authentication-ldap.login.groupmap.attribute" Değeri, tek bir LDAP özelliğinin adını belirtmelidir. Bu özellik önerilmiyorsa, " authentication-ldap.login.groupmap.*" öğesinin (yukarıya bakın) sol bölümünün anlamını aşağıdaki gibi değiştirir:


Kimliği doğrulanmış kullanıcı bu LDAP özelliğine sahipse, değerin sol kısmında (":" öncesinde) bu LDAP özelliğinin authentication-ldap.login.groupmap.*değerine bakın

Bu LDAP değeri herhangi bir " authentication-ldap.login.groupmap.*" alanında bulunursa, kimliği doğrulanmış bu kullanıcıyı authentication-ldap.login.groupmap.*değerin sağ kısmı (":" öğesinden sonra) tarafından belirtilen DSpace Grubuna atayın .

Örneğin:

authentication-ldap.login.groupmap.attribute = group

authentication-ldap.login.groupmap.1 = mathematics:Mathematics_Group

Yukarıdakiler, LDAP "grup" özniteliğinin "matematik" e eşit olduğu kimliği doğrulanmış kullanıcıların, geçerli oturumlarının geri kalanı için "Mathematics_Group" adlı DSpace Grubuna eklenmesini sağlayacaktır. Ancak, aynı kullanıcı daha sonra "bilgisayar bilimi" nin yeni bir LDAP "grup" değeri ile giriş yapmışsa, artık DSpace'deki "Mathematics_Group" üyesi olmayacaktır.


LDAP bağlantısı ve yapılandırmasında hata ayıklama

Her LDAP farklı olduğundan, DSpace'inizi LDAP'nizle iletişim kuracak şekilde yapılandırmak bazen zor olabilir. LDAP bağlantınızı / kullanıcı adınızı / şifrenizi test etmek için üçüncü taraf LDAP araçlarını kullanmanızı ve yerel LDAP'nizden hangi bilgilerin döndürüldüğünü daha iyi anlamak için örnek aramalar yapmanızı öneririz. Bu, LDAP yapılandırmasının daha sorunsuz geçmesini sağlar.

Böyle bir LDAP aracının bir örneği ldapsearchçoğu Linux işletim sisteminde bulunan  komut satırı aracıdır (örneğin Debian / Ubuntu'da "ldap-utils" paketinde bulunur). Aşağıda, bilgisayarınızdaki belirli yapılandırmaları belirlemek (ve / veya hata ayıklamak) için kullanılabilecek bazı örnek ldapsearch komutları bulunmaktadır  authentication-ldap.cfg. Aşağıdaki örneklerde, yer tutucu olarak (köşeli parantez içinde) belirli DSpace yapılandırmalarının adlarını kullandık. 


# Basic anonymous connection (for VERBOSE, add -v)

ldapsearch -x -H [provider_url]

   

# Debug a connection error (add -d-1)

# If you are connecting to an LDAPS URL and see connection errors (e.g. "peer cert untrusted or revoked")

# then see below note about "SSL Connection Errors"

ldapsearch -x -H [provider_url] -d-1


# Attempt to connect to [provider_url] as [search.user] (will prompt for search.user's password)

# This doesn't actually perform a query, just ensures that authentication is working

# NOTE: "search.user" is USUALLY either the full user DN (e.g. "cn=dspaceadmin,ou=people,o=myu.edu")

# or "DOMAIN\USERNAME" (e.g. "MYU\DSpaceUser"). The latter is more likely with Windows Active Directory

ldapsearch -x -H [provider_url] -D [search.user] -W

 

# Attempt to list the first 100 users in a given [search_context], returning the "cn", "mail" and "sn" fields for each

ldapsearch -x -H [provider_url] -D [search.user] -W -b [search_context] -z 100 cn mail sn 

 

# Attempt to find the first 100 users whose [id_field] starts with the letter "t", returning the [id_field], "cn", "mail" and "sn" fields for each

ldapsearch -x -H [provider_url] -D [search.user] -W -b [search_context] -z 100 -s sub "([id_field]=t*)" [id_field] cn mail sn


DSpace LDAP Bağlantısı ve DSpace LDAP Yapılandırmasında Hata ayıklama için linke tıklayın lütfen.