全部产品
Search
文档中心

Elasticsearch:Gunakan X-Pack untuk mengonfigurasi otentikasi LDAP

更新时间:Jul 06, 2025

Tema ini menjelaskan cara mengonfigurasi otentikasi Lightweight Directory Access Protocol (LDAP) untuk kluster Elasticsearch Alibaba Cloud, sehingga memungkinkan pengguna LDAP dengan peran yang diperlukan untuk mengakses kluster tersebut.

Prasyarat

Operasi berikut telah dilakukan:

  • Buat kluster Elasticsearch Alibaba Cloud. Dalam contoh ini, kluster Elasticsearch V6.7 digunakan.

    Untuk informasi lebih lanjut, lihat Buat Kluster Elasticsearch Alibaba Cloud.

  • Aktifkan layanan LDAP di virtual private cloud (VPC) tempat kluster Elasticsearch berada, dan siapkan data pengguna. Dalam topik ini, OpenLDAP 2.4.44 digunakan.

    Untuk informasi lebih lanjut, lihat Dokumentasi Resmi LDAP. Saat mengonfigurasi otentikasi LDAP, Anda tidak dapat mengonfigurasi properti ou. Anda hanya dapat mengonfigurasi properti cn dan Group.

Peringatan

Arsitektur jaringan Elasticsearch Alibaba Cloud di berbagai wilayah telah disesuaikan sejak Oktober 2020. Penyesuaian ini memiliki dampak berikut pada kluster:

  • Jika ingin menghubungkan kluster yang diterapkan dalam arsitektur jaringan asli ke Internet, Anda dapat menggunakan instance ECS dengan SNAT diaktifkan atau menggunakan proxy NGINX untuk meneruskan permintaan.

  • Dalam arsitektur jaringan baru, fitur otentikasi LDAP dibatasi. Anda dapat menggunakan layanan PrivateLink untuk membuat koneksi pribadi antar-VPC. Untuk informasi lebih lanjut, lihat Konfigurasikan Koneksi Pribadi untuk Kluster Elasticsearch. Jika ingin menghubungkan kluster yang diterapkan dalam arsitektur jaringan baru ke Internet, konfigurasikan proxy NGINX untuk meneruskan permintaan.

  • Dalam arsitektur jaringan asli, hanya kluster Elasticsearch zona tunggal yang mendukung otentikasi LDAP.

Catatan

Untuk informasi lebih lanjut tentang arsitektur jaringan, lihat [Pemberitahuan] Penyesuaian Arsitektur Jaringan.

Prosedur

  1. Langkah 1: (Opsional) Dapatkan Nama Domain dari Titik Akhir

  2. Langkah 2: Konfigurasikan Otentikasi LDAP

  3. Langkah 3: Peta Pengguna ke Peran

  4. Langkah 4: Verifikasi Hasilnya

Langkah 1: (Opsional) Dapatkan nama domain dari titik akhir

Kluster Elasticsearch yang dibuat pada Oktober 2020 atau setelahnya diterapkan dalam arsitektur jaringan baru. Kluster Elasticsearch ini berada di VPC akun layanan Elasticsearch. Jika kluster Elasticsearch Anda diterapkan dalam arsitektur jaringan baru, Anda harus menggunakan layanan PrivateLink untuk membuat koneksi pribadi antara VPC dan VPC Anda. Kemudian, dapatkan nama domain dari titik akhir terkait untuk digunakan di masa mendatang. Untuk mendapatkan nama domain dari titik akhir, lakukan langkah-langkah berikut:

  1. Buat instance Classic Load Balancer (CLB) yang mendukung layanan PrivateLink dan berada di VPC yang sama dengan kluster Elasticsearch yang dibuat.

    Untuk informasi lebih lanjut, lihat Langkah 1: Buat dan Konfigurasikan Instance CLB.

  2. Konfigurasikan instance CLB.

    Selama konfigurasi, Anda harus menentukan server LDAP sebagai server backend dan port 389 sebagai port pendengar.

    Untuk informasi lebih lanjut, lihat Konfigurasikan Koneksi Pribadi untuk Kluster Elasticsearch.

  3. Buat layanan titik akhir.

    Untuk informasi lebih lanjut, lihat Langkah 2: Buat Layanan Titik Akhir.

  4. Konfigurasikan koneksi pribadi ke kluster Elasticsearch.
  5. Dapatkan nama domain dari titik akhir yang digunakan untuk mengakses layanan titik akhir.

    Untuk informasi lebih lanjut, lihat Konfigurasikan Koneksi Pribadi untuk Kluster Elasticsearch.

    Catatan Catat nama domain yang diperoleh, yang akan digunakan dalam konfigurasi selanjutnya.

Langkah 2: Konfigurasikan otentikasi LDAP

Anda dapat menggunakan X-Pack untuk mengonfigurasi otentikasi LDAP dalam mode berikut:

  • Mode pencarian pengguna

  • Mode berbasis template Distinguished Name (DN)

Mode pencarian pengguna sering digunakan. Dalam mode pencarian pengguna, pengguna yang memiliki izin untuk menanyai direktori LDAP digunakan untuk mencari DN dari pengguna yang ingin Anda autentikasi. Pencarian dilakukan berdasarkan nama pengguna dan atribut LDAP yang disediakan oleh X-Pack. Setelah DN pengguna ditemukan, X-Pack mencoba mengikat pengguna ke direktori LDAP menggunakan DN dan kata sandi terkait untuk mengautentikasi pengguna. Untuk informasi lebih lanjut, lihat Konfigurasikan Realm LDAP.

Contoh kode berikut memberikan konfigurasi pemetaan yang diperlukan oleh LDAP untuk mengelola DN. Anda harus menambahkan konfigurasi ini ke file YML kluster Elasticsearch. Untuk informasi lebih lanjut, lihat Konfigurasikan File YML.

  • Konfigurasi untuk kluster Elasticsearch V6.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
  • Konfigurasi untuk kluster Elasticsearch versi V7.10 atau lebih baru

    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

Parameter

Deskripsi

type

Tipe dari realm. Anda harus menetapkan parameter ini ke ldap.

order

Prioritas dari realm. Nilai kecil menunjukkan prioritas tinggi. Jika Anda ingin menentukan beberapa realm, kami sarankan Anda mengonfigurasi parameter ini. Realm diakses dalam urutan menurun order dari prioritas mereka.

Catatan

Untuk kluster Elasticsearch V8.X, nilai parameter ini harus unik di antara permintaan berbeda. Kami sarankan Anda menetapkan parameter ini ke 2.

url

URL dan nomor port yang digunakan untuk terhubung ke server LDAP. ldap menunjukkan bahwa koneksi umum dan port 389 digunakan. ldaps menunjukkan bahwa koneksi terenkripsi SSL dan port 636 digunakan.

Penting

Jika kluster Elasticsearch Anda diterapkan dalam arsitektur jaringan baru, Anda harus menentukan nilai untuk parameter ini dalam format Nama domain titik akhir:Nomor port. Anda bisa mendapatkan domain name of the endpoint berdasarkan instruksi di Langkah 1: (Opsional) Dapatkan nama domain dari titik akhir. Dalam contoh ini, ep-bp1dhpobznlgjhj9****-cn-hangzhou-i.epsrv-bp1q8tcj2jjt5dwr****.cn-hangzhou.privatelink.aliyuncs.com:389 digunakan.

bind_dn

DN dari pengguna yang ingin Anda cari dan ikat ke direktori LDAP. Parameter ini hanya valid dalam mode pencarian pengguna.

bind_password

Kata sandi pengguna.

user_search.base_dn

Container DN yang digunakan untuk mencari pengguna.

group_search.base_dn

Container DN yang digunakan untuk mencari grup tempat pengguna termasuk. Jika Anda tidak mengonfigurasi parameter ini, Elasticsearch mencari atribut yang ditentukan oleh parameter user_group_attribute untuk menentukan grup tempat pengguna termasuk.

unmapped_groups_as_roles

Nilai default dari parameter ini adalah false. Jika Anda menetapkan parameter ini ke true, nama grup LDAP yang tidak dipetakan digunakan sebagai nama peran.

Untuk informasi lebih lanjut tentang parameter, lihat Pengaturan Keamanan di Elasticsearch.

Langkah 3: Peta pengguna ke peran

  1. Masuk ke konsol Kibana kluster Elasticsearch Anda dan buka halaman utama konsol Kibana sesuai petunjuk.

    Untuk informasi lebih lanjut tentang cara masuk ke konsol Kibana, lihat Masuk ke Konsol Kibana.

    Catatan

    Dalam contoh ini, kluster Elasticsearch V6.7.0 digunakan. Operasi pada kluster versi lain mungkin berbeda. Operasi aktual di konsol yang berlaku.

  2. Di panel navigasi sisi kiri halaman yang muncul, klik Dev Tools.

  3. Di tab Console halaman yang muncul, jalankan perintah berikut untuk memetakan pengguna zhang* ke peran administrator:

    V8.X

    POST _security/role_mapping/ldap_super_user1?pretty
    {
      "roles": [ "superuser" ],
      "enabled": true,
      "rules": {
        "any": [
          {
            "field": {
              "username": "zhang*"
            }
          }
        ]
      }
    }

    Versi lain

    POST _xpack/security/role_mapping/ldap_super_user1?pretty
    {
      "roles": [ "superuser" ],
      "enabled": true,
      "rules": {
        "any": [
          {
            "field": {
              "username": "zhang*"
            }
          }
        ]
      }
    }

    Untuk informasi lebih lanjut, lihat Versi Elastic.

Langkah 4: Verifikasi hasilnya

  1. Masuk ke konsol Kibana kluster Elasticsearch menggunakan pengguna zhang*.

    登录Kibana

  2. Di panel navigasi sisi kiri halaman yang muncul, klik Dev Tools.

  3. Di tab Console halaman yang muncul, jalankan perintah berikut untuk memeriksa apakah pengguna zhang* memiliki izin untuk memodifikasi konfigurasi kluster:

    PUT _cluster/settings
    {
      "persistent": {
        "action.auto_create_index": true
      }
    }

    Jika hasil seperti yang ditunjukkan pada gambar berikut dikembalikan, pengguna memiliki izin untuk memodifikasi konfigurasi kluster.返回结果