Pengujian konektivitas LDAP Aman

Edisi yang didukung untuk fitur ini: Frontline Standard dan Frontline Plus; Business Plus; Enterprise Standard dan Enterprise Plus; Education Fundamentals, Education Standard, dan Education Plus; Enterprise Essentials Plus. Bandingkan edisi Anda

Sebelum mencoba menghubungkan klien LDAP Anda ke layanan LDAP Aman, secara opsional, Anda dapat melakukan uji konektivitas cepat menggunakan alat sederhana, seperti ldapsearch, ADSI, atau ldp.exe. Alat ini juga dapat digunakan untuk memecahkan masalah jika terjadi error saat mencoba menghubungkan klien LDAP Anda ke layanan.

Dengan pengujian sebagaimana dijelaskan pada bagian-bagian di bawah, Anda dapat mengetahui seandainya terjadi masalah konfigurasi di pihak Anda, pesan error umum, juga memperoleh rekomendasi tentang cara memperbaiki masalah tersebut.

Artikel ini berisi bagian berikut:

Catatan: Jika Anda perlu menghubungi Dukungan Google Workspace atau Dukungan Cloud Identity Premium selama proses ini, pastikan Anda menyimpan output perintah. Pastikan Anda menghapus semua informasi identitas pribadi dari output sebelum membagikannya ke tim dukungan.

Memverifikasi konektivitas dan menjalankan kueri LDAP

Setelah menyiapkan layanan LDAP Aman di konsol Google Admin, Anda dapat menggunakan salah satu dari tiga alat sederhana ini untuk memverifikasi konektivitas dengan LDAP Aman: ldapsearch, ADSI, atau ldp.exe. Untuk mengetahui detail dan petunjuknya, lihat bagian di bawah.

ldapsearch

Gunakan utilitas ldapsearch dari command line untuk membuat kueri LDAP dasar. Hasil kueri LDAP yang berhasil akan menunjukkan bahwa klien LDAP dan sesi TLS dasar serta sambungan TCP berfungsi sebagaimana mestinya.

Untuk menguji konektivitas dengan ldapsearch:

  1. Buat konfigurasi LDAP, lalu download sertifikatnya dengan mengikuti petunjuk di Menambahkan klien LDAP.

    Catatan: Untuk menyederhanakan lingkungan pengujian, pastikan ada setidaknya satu pengguna di unit organisasi yang diberi otorisasi untuk mengakses klien LDAP.

  2. Jalankan kueri LDAP. Contoh ini mengajukan kueri pengguna tertentu (untuk mengetahui detail selengkapnya, lihat OpenLDAP ldapsearch).

    LDAPTLS_CERT={crt_file} LDAPTLS_KEY={key_file} ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} '(mail={user_email})'

    Ganti placeholder sebagai berikut:

    • {crt_file} Nama file .crt
    • {key_file} Nama file .key
    • {domain} Setiap bagian nama domain, misalnya: example.com akan menjadi "dc=example,dc=com"
    • {user_email} Alamat email utama pengguna di domain.

Catatan tentang penggunaan ldapsearch

  • Jika tidak ada nilai BindDN yang diberikan, ldapsearch akan menggunakan kunci dan sertifikat untuk mengizinkan penelusuran.
  • Jika nilai BindDN adalah nama pengguna LDAP yang Anda buat di konsol Admin, ldapsearch akan menggunakan izin klien LDAP seperti yang dikonfigurasi di konsol Admin.

    ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {ldap_access_credentials_username} -W '(mail={user_email})

  • Jika nilai BindDN adalah alamat email atau nama khusus LDAP Pengguna Workspace, ldapsearch akan menggunakan kredensial pengguna tersebut untuk melakukan penelusuran berdasarkan izinnya.

    ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {workspace_username@domain} -W '(mail={user_email})'

Menggunakan ldapsearch dengan stunnel

Jika deployment Anda mewajibkan penggunaan stunnel, ikuti langkah-langkah berikut:

  1. Di konsol Admin, buat kredensial akses untuk menghasilkan nama pengguna dan sandi yang diperlukan oleh ldapsearch.
  2. Gunakan perintah berikut:

    ldapsearch -x -D "{username}" -w {password} -H ldap://{stunnel_host}:{stunnel_port} -b dc={domain},dc={domain} '(mail={user_email})'

    Ganti placeholder sebagai berikut:

    • {username} Nama pengguna dari kredensial yang dibuat di Konsol Admin
    • {password} Sandi dari kredensial yang dibuat di Konsol Admin
    • {stunnel_host} : Alamat IP atau nama host perangkat yang menjalankan stunnel di jaringan Anda.
    • {stunnel_port} : port tempat stunnel berjalan, periksa konfigurasi stunnel Anda
    • {user_email} Alamat email utama pengguna di domain

Skenario perintah ldapsearch yang berhasil

Output perintah ldapsearch yang berhasil akan mencantumkan pengguna beserta email (sebagaimana ditentukan saat membuat klien LDAP) dalam format LDIF.

Contoh:

# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# example.com
dn: dc=example,dc=com
objectClass: top
objectClass: domain
objectClass: dcObject
dc: example

# admin-group, Groups, example.com
dn: cn=admin-group,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
cn: admin-group
displayName: admin-group
description:
gidNumber: 12345
member: uid=admin,ou=Users,dc=example,dc=com
memberUid: admin
googleAdminCreated: FALSE


# example-user, Users, example.com
dn: uid=example-user,ou=Users,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
uid: example-user
googleUid: example-user
posixUid: example-user
cn: example-user
cn: FirstName LastName
sn: FirstName
displayName: FirstName LastName
givenName: FirstName
mail: example-user@example.com
uidNumber: 12345
gidNumber: 12345
homeDirectory: /home/example-user
loginShell: /bin/bash
gecos:

Kemungkinan error

  • Klien dan/atau library OpenLDAP dikompilasi tanpa dukungan SNI

    SNI (Server Name Indication) harus didukung oleh klien LDAP (dalam hal ini OpenLDAP). Jika SNI tidak tersedia, Anda mungkin akan melihat error seperti berikut:

    SASL/EXTERNAL authentication started

    ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
    additional info: SASL(-4): no mechanism available:

    Rekomendasi:
    • Jika Anda menggunakan MacOS, SASL diaktifkan secara default dan dapat diabaikan dengan opsi "-x".
    • Tambahkan opsi -d5 ke ldapsearch, lalu periksa output untuk baris berikut:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
  • ldapsearch menampilkan status 0 (berhasil), tetapi tidak ada pengguna dalam output

    Menentukan opsi ldapsearch -x (gunakan autentikasi SASL) dengan sertifikat klien akan membuat autentikasi berhasil, tetapi tidak akan mencantumkan pengguna di domain.

    Rekomendasi: Hapus opsi -x dan coba lagi.

ADSI Edit (Windows)

  1. Ikuti langkah 1–11 di ldp.exe (Windows) untuk menginstal sertifikat klien.
  2. Buka Action > Connect to…
  3. Masukkan setelan koneksi berikut:

    Name: Ketik nama untuk koneksi Anda, seperti Google LDAP.
    Connection Point: "Select or type a Distinguished Name or Naming Context"
    Masukkan nama domain Anda dalam format DN (misalnya, dc=example,dc=com untuk example.com).

    Computer: "Select or type a domain or server"
    ldap.google.com

    Use SSL-based Encryption: Dicentang
  4. Klik Lanjutan..., lalu masukkan detail berikut:

    Tentukan kredensial: Dicentang
    Nama pengguna: Nama pengguna kredensial akses dari konsol Admin
    Sandi: Sandi kredensial akses dari konsol Admin
    Nomor Port: 636
    Protokol: LDAP
    Autentikasi pengikatan sederhana: Dicentang
  5. Klik OK, lalu klik OK lagi.
  6. Jika konektivitas berhasil, konten direktori di DN dasar ditampilkan di panel sebelah kanan.

ldp.exe (Windows)

  1. Instal OpenSSL.
  2. Konversikan file sertifikat dan kunci menjadi satu file berformat PKCS12. Di command prompt, masukkan perintah berikut:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    Masukkan sandi untuk mengenkripsi file output.
  3. Buka Panel Kontrol.
  4. Di kotak penelusuran, telusuri "certificate", lalu klik Manage user certificates.
  5. Buka Action > All Tasks > Import…
  6. Pilih Current User, lalu klik Next.
  7. Klik Browse…
  8. Pada menu dropdown file type di pojok kanan bawah kotak dialog, pilih Personal Information Exchange (&ast;.pfx;&ast;.p12).
  9. Pilih file ldap-client.p12 dari langkah 2, klik Open, lalu klik Next.
  10. Masukkan sandi dari langkah 2, lalu klik Berikutnya.
  11. Pilih penyimpanan sertifikat Personal, klik Next, lalu klik Finish.
  12. Jalankan Ldp.exe.
  13. Buka Connection > Connect...
  14. Masukkan detail koneksi berikut:

    Server: ldap.google.com
    Port: 636
    Connectionless: Unchecked
    SSL: Checked
  15. Klik Oke.
  16. Buka View > Tree.
  17. Masukkan DN dasar. Ini adalah nama domain Anda dalam format DN. (misalnya, dc=example,dc=com untuk example.com).
  18. Klik Oke.
  19. Jika konektivitas berhasil, konten direktori di DN dasar ditampilkan di panel sebelah kanan.

Menjalankan pengujian konektivitas dasar jika diperlukan

Jika Anda gagal Memverifikasi konektivitas dan menjalankan kueri LDAP, ikuti petunjuk di bagian ini untuk pengujian konektivitas. Jika ldapsearch gagal menampilkan pengguna yang diinginkan dan tidak memberi indikasi yang jelas apakah sesi TLS dasar berhasil, gunakan klien OpenSSL untuk memastikan bahwa lapisan jaringan yang digunakan OpenLDAP berfungsi sebagaimana mestinya.

Untuk melakukan uji konektivitas dasar:

  1. Instal utilitas klien openssl untuk sistem operasi Anda.

    Sebagian besar distribusi GNU/Linux menggunakan nama paket "openssl". Lihat detail tentang sistem operasi lain.

  2. Buat sambungan manual ke layanan LDAP Aman menggunakan klien openssl:

    openssl s_client -connect ldap.google.com:636
    

    Pastikan negosiasi SSL berhasil dengan adanya baris berikut di akhir output openssl s_client:

    Verify return code: 0 (ok)
    

Kemungkinan error

Klien/library OpenSSL tidak mendukung SNI (Server Name Indication)

Selama pengujian konektivitas, output berikut mungkin akan ditampilkan:

Verify return code: 18 (self signed certificate)

Layanan LDAP Aman memerlukan klien TLS yang mendukung dan memulai sesi TLS menggunakan SNI (Server Name Indication). Jika klien TLS tidak mendukung SNI, server TLS (ldap.google.com) akan menampilkan sertifikat yang ditandatangani sendiri yang akan gagal dalam pemeriksaan validasi CA, untuk menunjukkan bahwa SNI diperlukan.

Perilaku ini dapat dipastikan dengan memeriksa baris berikut di dekat bagian awal output klien OpenSSL:

depth=0 OU = "No SNI provided; please fix your client.", CN = invalid2.invalid

Penyebab error ini di antaranya adalah versi OpenSSL yang tidak mendukung SNI, atau aplikasi yang menggunakan library OpenSSL dengan SNI dinonaktifkan secara eksplisit.

Koneksi ditolak

Jika output berikut ditampilkan, dengan {timestamp} sebagai stempel waktu UNIX dalam mikrodetik, artinya koneksi TCP secara aktif ditolak sebelum negosiasi TLS dimulai:

{timestamp}:error:0200206F:system library:connect:Connection refused:crypto/bio/b_sock2.c:110:
{timestamp}:error:2008A067:BIO routines:BIO_connect:connect error:crypto/bio/b_sock2.c:111:connect:errno=111

Hal ini mungkin disebabkan oleh:

  • Firewall tingkat aplikasi atau tingkat sistem di perangkat lokal
  • Firewall di jaringan fisik atau jaringan upstream yang sama

Untuk menyelidiki, gunakan tcptraceroute untuk menentukan host mana yang menolak koneksi—misalnya, tcptraceroute ldap.google.com 636.