Rol atanmış LDAP kullanıcılarının örneğe erişebilmesi için bir Alibaba Cloud Elasticsearch örneğinde Lightweight Directory Access Protocol (LDAP) kimlik doğrulamasını yapılandırabilirsiniz.
Ön koşullar
Aşağıdaki ön koşulları tamamlayın:
-
Bir Alibaba Cloud Elasticsearch örneği oluşturun. Bu konuda örnek olarak 6,7 sürümüne sahip bir örnek kullanılmaktadır.
Daha fazla bilgi için bkz. Alibaba Cloud Elasticsearch örneği oluşturma.
-
Alibaba Cloud Elasticsearch örneğinizle aynı VPC içinde bir LDAP hizmeti ve kullanıcı verisi kurun. Bu konuda örnek olarak OpenLDAP 2.4.44 kullanılmaktadır.
Ayrıntılar için bkz. resmi LDAP belgeleri. LDAP verilerine örnek: phpLDAPadmin kullanılarak görüntülendiğinde, dizin ağacının kök düğümü
dc=yaobili,dc=comşeklindedir ve birden çok organizasyonel birim (ou) ile kullanıcı girişi (cn) içerir.Organizasyonel birime (ou) göre yapılandırma desteklenmez. Yalnızca cn ve group desteklenir.
Kullanım notları
Ekim 2020'den bu yana Alibaba Cloud Elasticsearch, belirli bölgelerde ağ mimarisini ayarlamıştır; bu durum yeni oluşturulan örnekleri etkiler:
Eski ağ mimarisinde oluşturulan örnekler için internete erişmek üzere SNAT veya kendi yönettiğiniz bir NGINX proxy sunucusu kullanabilirsiniz.
Yeni ağ mimarisinde oluşturulan örnekler için LDAP özelliğine ağ kısıtlamaları uygulanır. VPC'ler arasında özel bir bağlantı kurmak için PrivateLink kullanabilirsiniz. PrivateLink'in nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz. Örnek için özel bağlantı yapılandırma. İnternete erişmeniz gerekiyorsa istekleri iletmek için bir NGINX proxy sunucusu yapılandırmanız gerekir.
Eski ağ mimarisinde oluşturulan örnekler için Alibaba Cloud Elasticsearch, LDAP kimlik doğrulamasını yalnızca tek bir kullanılabilirlik alanında destekler.
Ağ mimarisi hakkında daha fazla bilgi için bkz. [[Bildirim] Ağ mimarisi ayarlama](t2521816.xdita#).
Yordam
Adım 1: Uç nokta alan adını edinme (isteğe bağlı)
Ekim 2020 veya sonrasında oluşturulan Elasticsearch kümeleri yeni ağ mimarisinde konuşlandırılır. Bu Elasticsearch kümeleri Elasticsearch hizmet hesabının VPC'sinde bulunur. Elasticsearch kümeniz yeni ağ mimarisinde konuşlandırılmışsa VPC ile kendi VPC'niz arasında özel bir bağlantı kurmak için PrivateLink hizmetini kullanmanız gerekir. Ardından, ileride kullanmak üzere ilgili uç noktanın alan adını edinin. Bir uç noktanın alan adını edinmek için aşağıdaki adımları uygulayın:
-
PrivateLink hizmetini destekleyen ve oluşturulan Elasticsearch kümesiyle aynı VPC'de bulunan bir Classic Load Balancer (CLB) örneği oluşturun.
Daha fazla bilgi için bkz. PrivateLink bağlantısı yapılandırma.
-
Yük dengeleyici örneğini yapılandırın.
Örneği yapılandırırken LDAP hizmetinizi barındıran sunucuyu arka uç sunucusu olarak ve dinleyici bağlantı noktasını 389 olarak ayarlayın.
Daha fazla bilgi için bkz. PrivateLink bağlantısı yapılandırma.
-
Bir uç nokta hizmeti oluşturun.
Daha fazla bilgi için bkz. PrivateLink bağlantısı yapılandırma.
-
Elasticsearch kümesine özel bir bağlantı yapılandırın.
Daha fazla bilgi için bkz. PrivateLink bağlantısı yapılandırma.
-
Uç nokta hizmetine erişmek için kullanılan uç noktanın alan adını edinin.
Daha fazla bilgi için bkz. PrivateLink bağlantısı yapılandırma.
NotEdindiğiniz alan adını kaydedin; bu alan adı sonraki yapılandırmalarda kullanılacaktır.
Adım 2: LDAP kimlik doğrulamasını yapılandırma
X-Pack aşağıdaki LDAP kimlik doğrulama modlarını destekler:
kullanıcı arama modu
DN şablonu modu
Kullanıcı arama modu en yaygın yöntemdir. Bu modda yetkili bir kullanıcı, kullanıcı adına ve bir LDAP nitelik filtresine dayanarak kimlik doğrulayan kullanıcının ayırt edici adını (DN) bulmak için LDAP dizininde arama yapar. DN bulunduğunda X-Pack, kimlik doğrulamayı tamamlamak için DN ve parola ile dizine bağlanır. Daha fazla bilgi için bkz. LDAP alanı yapılandırma.
Aşağıdaki yapılandırmayı Elasticsearch YML dosyasına ekleyin. Daha fazla bilgi için bkz. YML parametrelerini yapılandırma. Yapılandırma, örnek sürümüne göre değişir.
-
Sürüm 6,7
xpack.security.authc.realms.ldap1.type: ldap xpack.security.authc.realms.ldap1.order: 2 xpack.security.authc.realms.ldap1.url: "ldap://ep-bp1dhpobznlgjhj9****-cn-hangzhou-i.epsrv-bp1q8tcj2jjt5dwr****.cn-hangzhou.privatelink.aliyuncs.com:389" xpack.security.authc.realms.ldap1.bind_dn: "admin@yaobili.com" xpack.security.authc.realms.ldap1.bind_password: "yourPassword" xpack.security.authc.realms.ldap1.user_search.base_dn: "dc=yaobili,dc=com" xpack.security.authc.realms.ldap1.user_search.filter: "(cn={0})" xpack.security.authc.realms.ldap1.group_search.base_dn: "dc=yaobili,dc=com" xpack.security.authc.realms.ldap1.unmapped_groups_as_roles: false -
Sürüm 7,10 ve sonrası
xpack.security.authc.realms.ldap.ldap1.order: 2 xpack.security.authc.realms.ldap.ldap1.url: "ldap://ep-bp1dhpobznlgjhj9****-cn-hangzhou-i.epsrv-bp1q8tcj2jjt5dwr****.cn-hangzhou.privatelink.aliyuncs.com:389" xpack.security.authc.realms.ldap.ldap1.bind_dn: "admin@yaobili.com" xpack.security.authc.realms.ldap.ldap1.bind_password: "yourPassword" xpack.security.authc.realms.ldap.ldap1.user_search.base_dn: "dc=yaobili,dc=com" xpack.security.authc.realms.ldap.ldap1.user_search.filter: "(cn={0})" xpack.security.authc.realms.ldap.ldap1.group_search.base_dn: "dc=yaobili,dc=com" xpack.security.authc.realms.ldap.ldap1.unmapped_groups_as_roles: false
|
Parametre |
Açıklama |
|
type |
Alan türü. Bu parametre ldap olarak ayarlanmalıdır. |
|
order |
Alanın önceliği. Daha küçük bir değer daha yüksek öncelik anlamına gelir. Birden çok alan yapılandırıyorsanız değerlendirme sırasını kontrol etmek için bu parametreyi ayarlamanızı öneririz. Not
8.x sürümü için order değeri benzersiz olmalıdır. Değeri 2 olarak ayarlamanızı öneririz. |
|
url |
LDAP sunucusunun URL'si ve bağlantı noktası. ldap protokolü 389 numaralı bağlantı noktasında standart bir bağlantıyı gösterir. ldaps protokolü ise 636 numaralı bağlantı noktasında SSL üzerinden güvenli bir bağlantıyı gösterir. Önemli
Yeni ağ mimarisi için bu parametreyi uç nokta alan adı:bağlantı noktası şeklinde ayarlamanız gerekir. endpoint domain namenı Adım 1: Uç nokta alan adını edinme (isteğe bağlı) bölümünde edinebilirsiniz. Bu konuda örnek olarak |
|
bind_dn |
LDAP'ye bağlanmak ve arama yapmak için kullanılan kullanıcının DN'si. Bu parametre yalnızca kullanıcı arama modu için geçerlidir. |
|
bind_password |
LDAP dizinine bağlanmak için kullanılan kullanıcının parolası. |
|
user_search.base_dn |
Kullanıcı aramaları için kapsayıcı DN'si. |
|
group_search.base_dn |
Bir kullanıcının ait olduğu grupları aramak için kullanılan kapsayıcı DN'si. Bu parametre belirtilmezse Elasticsearch, grup üyeliğini belirlemek için user_group_attribute tarafından belirtilen niteliği arar. |
|
unmapped_groups_as_roles |
Varsayılan değer false şeklindedir. Bu parametre true olarak ayarlanırsa eşlenmemiş LDAP gruplarının adları rol adı olarak kullanılır ve kullanıcıya atanır. |
Parametreler hakkında daha fazla bilgi için bkz. Elasticsearch'te güvenlik ayarları.
Adım 3: LDAP kullanıcı hesaplarını rollere eşleme
-
Elasticsearch kümenizin Kibana konsolunda oturum açın.
Yönergeler için bkz. Kibana konsolunda oturum açma.
NotBuradaki örnekler Elasticsearch V6.7.0 kullanmaktadır. Diğer sürümlerde işlemler biraz farklılık gösterebilir.
Sol gezinme bölmesinde Developer Tools öğesine tıklayın.
-
Console alanında
zhang*ile eşleşen LDAP kullanıcılarınısuperuserrolüne eşlemek için aşağıdaki komutu çalıştırın.Version 8.x
POST _security/role_mapping/ldap_super_user1?pretty { "roles": [ "superuser" ], "enabled": true, "rules": { "any": [ { "field": { "username": "zhang*" } } ] } }Other versions
POST _xpack/security/role_mapping/ldap_super_user1?pretty { "roles": [ "superuser" ], "enabled": true, "rules": { "any": [ { "field": { "username": "zhang*" } } ] } }Daha fazla bilgi için Elasticsearch sürümünüzün belgelerine bakın.
Adım 4: Sonuçları doğrulama
Yetkili bir
zhang*kullanıcısı olarak Alibaba Cloud Elasticsearch örneğinizin Kibana konsolunda oturum açın.Sol gezinme bölmesinde Developer Tools öğesine tıklayın.
-
Console alanında
zhang*kullanıcısının küme ayarlarını değiştirme izinlerine sahip olduğunu doğrulamak için aşağıdaki komutu çalıştırın.PUT _cluster/settings { "persistent": { "action.auto_create_index": true } }Başarılı bir komut aşağıdaki yanıtı döndürür:
{ "acknowledged" : true, "persistent" : { "action" : { "auto_create_index" : "true" } }, "transient" : { } }