Güvenli LDAP bağlantı testi

Bu özellik Cloud Identity Premium sürümünde kullanılabilir. Sürümleri karşılaştırın 

LDAP istemcinizi Güvenli LDAP hizmetine bağlamayı denemeden önce, isteğe bağlı olarak ldapsearch, ADSI veya ldp.exe gibi basit araçları kullanarak hızlı bir bağlantı testi yapabilirsiniz. LDAP istemcinizi hizmete bağlamaya çalışırken hatalarla karşılaşırsanız sorunları gidermek için de bu araçlar kullanılabilir.

Aşağıdaki bölümlerde açıklanan testler, sizin tarafınızda bir yapılandırma sorunu olup olmadığını, sık karşılaşılan hata mesajlarını ve çözülebilen sorunların nasıl düzeltilebileceğine yönelik önerileri anlamanızı sağlar.

Bu makale şu bölümleri içermektedir:

Not: Bu işlem sırasında Google Workspace Destek veya Cloud Identity Premium Destek ekibiyle iletişime geçmeniz gerekirse komutların çıkışını kaydettiğinizden emin olun. Çıkışı destek ekibiyle paylaşmadan önce çıkıştaki kimliği tanımlayabilecek bilgileri silmeyi unutmayın.

Bağlantıyı doğrulama ve bir LDAP sorgusu çalıştırma

Google Yönetici konsolunda Güvenli LDAP hizmetini ayarladıktan sonra, Güvenli LDAP bağlantısı kurulduğunu doğrulamak için şu üç basit araçtan birini kullanabilirsiniz: ldapsearch, ADSI veya ldp.exe. Ayrıntılar ve talimatlar için aşağıdaki bölümlere bakın.

ldapsearch

Temel LDAP sorgusu yürütmek için, bir komut satırından ldapsearch yardımcı programını kullanın. Başarılı bir LDAP sorgusunun sonucu, LDAP istemcisinin, alttaki TLS oturumunun ve TCP bağlantısının amaçlandığı gibi çalıştığını gösterir.

ldapsearch bağlantısını test etmek için:

  1. 1. LDAP istemcileri ekleme başlıklı makaledeki talimatları uygulayarak bir LDAP yapılandırması oluşturun ve sertifikayı indirin.

    Not: Test ortamını basitleştirmek için LDAP istemci erişimini yetkilendirdiğiniz kuruluş biriminde en az bir kullanıcının bulunduğundan emin olun.
     
  2. Bir LDAP sorgusu yürütün.

    Aşağıdaki komut, belirli bir kullanıcıyı sorgulamak için ldapsearch komut satırı aracını nasıl kullanacağınızı gösterir (ayrıntılı bilgi için OpenLDAP ldapsearch sayfasına bakın): 
     

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

    Aşağıdaki yer tutucuları değiştirin:

    {crt_file} : .crt dosyasının adı
    {key_file} : .key dosyasının adı
    {domain} : Alan adının her bir kısmı, örneğin: example.com için "dc=example,dc=com"
    {user_email} : Alandaki bir kullanıcının birincil e-posta adresi.

ldapsearch'ü stunnel ile kullanma

Dağıtımınız stunnel kullanmanızı gerektiriyorsa aşağıdaki komutları kullanın:

ldapsearch -H ldap://{stunnel_host}:{stunnel_port} -b
dc={domain},dc={domain} '(mail={user_email})'

Stunnel'a özgü yer tutucuları değiştirin:
{stunnel_host} : Ağınızda stunnel çalıştıran makinenin IP adresi veya ana makine adı.
{stunnel_port} : Stunnel'ın çalıştığı bağlantı noktası; stunnel yapılandırmanızı kontrol edin

Başarılı ldapsearch komutu senaryosu

Başarılı bir ldapsearch komutu çıkışı, kullanıcıyı ve e-postayı LDIF biçiminde (LDAP istemcisini oluştururken belirtildiği gibi) listeler.

Örneğin:

# 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:

Olası hatalar

  • OpenLDAP istemcisi ve/veya kitaplığı SNI desteği olmadan derlendi

    SNI (Sunucu Adı Göstergesi), LDAP istemcisi (buradaki durumda OpenLDAP) tarafından desteklenmelidir. SNI yoksa aşağıdakine benzer bir hata görebilirsiniz:

    SASL/EXTERNAL authentication started

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

    Öneri:
    • MacOS kullanıyorsanız, SASL varsayılan olarak etkindir ve "-x" seçeneğiyle atlanabilir.
    • ldapsearch'e -d5 seçeneğini ekleyin ve aşağıdaki satırın sonucunu kontrol edin:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
       
  • ldapsearch 0 (başarı) durumunu döndürüyor, ancak çıkışta hiçbir kullanıcı yok

    İstemci sertifikaları ile ldapsearch -x (SASL kimlik doğrulaması kullan) seçeneğinin belirtilmesi kimlik doğrulamasının başarıyla yapılmasını sağlar, ancak alandaki kullanıcıları listelemez.

    Öneri: -x seçeneğini kaldırın ve tekrar deneyin.

ADSI Edit (Windows)
  1. İstemci sertifikalarını yüklemek için ldp.exe (Windows) bölümündeki 1–11. adımları izleyin.
  2. Action > Connect to… (Eylem > Bağlan) seçeneğine gidin.
  3. Aşağıdaki bağlantı ayarlarını girin:

    Name (Ad): Bağlantınız için Google LDAP gibi bir ad yazın.
    Connection Point (Bağlantı Noktası): “Select or type a Distinguished Name or Naming Context” (Bir Ayırt Edici Ad ya da Adlandırma İçeriği seçin)
    Adınızı DN biçiminde girin (örneğin, example.com için dc=example,dc=com).

    Computer (Bilgisayar): "Select or type a domain or server" (Bir alan ya da sunucu seçin veya girin)
    ldap.google.com

    Use SSL-based Encryption (SSL tabanlı şifreleme kullan): İşaretli
     
  4. Advanced... (Gelişmiş) seçeneğini tıklayıp aşağıdaki bilgileri girin:

    Specify credentials (Kimlik bilgilerini belirt): İşaretli
    Username (Kullanıcı adı): Yönetici konsolunda, erişim kimlik bilgilerindeki kullanıcı adı
    Password (Şifre): Yönetici konsolunda, erişim kimlik bilgilerindeki şifre
    Port Number (Bağlantı Noktası Numarası): 636
    Protocol (Protokol): LDAP
    Simple bind authentication (Basit bağlama kimlik doğrulaması): İşaretli
     
  5. OK (Tamam) düğmesini tıklayın; sonra yine OK düğmesini tıklayın.
  6. Bağlantı başarılı olursa ana DN'deki dizin içerikleri sağ bölmede gösterilir.
ldp.exe (Windows)
  1. OpenSSL'yi yükleyin.
  2. Sertifika ve anahtar dosyalarını PKCS12 biçimli bir dosyaya dönüştürün. Bir komut istemine aşağıdaki komutu girin:

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

    Çıkış dosyasını şifrelemek için bir şifre girin.
     
  3. Denetim Masası'na gidin.
  4. Arama kutusunda "sertifika" araması yapın ve Kullanıcı sertifikalarını yönetin'i tıklayın.
  5. Eylem > Tüm Görevler > İçe Aktar… seçeneğine gidin.
  6. Geçerli Kullanıcı'yı seçin ve İleri'yi tıklayın.
  7. Browse… (Göz At) seçeneğini tıklayın.
  8. İletişim kutusunun sağ alt köşesindeki dosya türü açılır menüsünde Kişisel Bilgi Değişimi (*.pfx;*.p12) seçeneğini belirleyin.
  9. 2. adımdaki ldap-client.p12 dosyasını seçin, 'ı ve ardından İleri'yi tıklayın.
  10. 2. adımdaki şifreyi girin ve İleri'yi tıklayın.
  11. Kişisel sertifika deposunu seçin, İleri'yi ve ardından Son'u tıklayın.
  12. Ldp.exe'yi çalıştırın.
  13. Bağlantı > Bağlan... seçeneğine gidin.
  14. Aşağıdaki bağlantı bilgilerini girin:

    Sunucu: ldap.google.com
    Bağlantı Noktası: 636
    Bağlantısız: İşaretsiz
    SSL: İşaretli
     
  15. Tamam'ı tıklayın.
  16. Görünüm > Ağaç'a gidin.
  17. Ana DN'i girin. Bu, DN biçimindeki alan adınızdır (örneğin, example.com için dc=example,dc=com).
  18. Tamam'ı tıklayın.
  19. Bağlantı başarılı olursa ana DN'deki dizin içerikleri sağ bölmede gösterilir.

Gerekirse temel bağlantı testini çalıştırma

Bağlantıyı doğrulama ve bir LDAP sorgusu çalıştırma bölümünde başarılı bir sonuç alamıyorsanız bağlantı testi için bu bölümdeki talimatları uygulayın. ldapsearch beklenen kullanıcıyı döndüremez ve alttaki TLS oturumunun başarılı olduğuna dair net bir bilgi vermezse OpenLDAP'nin temel aldığı ağ katmanlarının beklendiği gibi çalıştığını doğrulamak için OpenSSL istemcisini kullanın.

Temel bağlantı testi yapmak için:

  1. İşletim sisteminize yönelik openssl istemci yardımcı programını yükleyin.

    Çoğu GNU/Linux dağıtımı "openssl" paket adını kullanılır. Diğer işletim sistemleri ile ilgili ayrıntılara göz atın.
     
  2.  openssl istemcisini kullanarak Güvenli LDAP hizmetine manuel olarak bağlanın:

    openssl s_client -connect ldap.google.com:636

    SSL iletişiminin başarılı olduğunu doğrulayın; openssl s_client çıkışının sonunda aşağıdaki satır bulunmalıdır: 

    Verify return code: 0 (ok)

Olası hatalar

OpenSSL istemcisi/kitaplığı SNI'yı (Sunucu Adı Göstergesi) desteklemiyor

Bağlantı testi sırasında aşağıdaki çıkış döndürülebilir:

Verify return code: 18 (self signed certificate)

Güvenli LDAP hizmeti, SNI (Sunucu Adı Göstergesi) kullanarak TLS oturumunu destekleyen ve başlatan bir TLS istemcisi gerektirir. TLS istemcisi SNI'yı desteklemiyorsa TLS sunucusu (ldap.google.com), SNI'nın gerekli olduğunu belirten CA doğrulama denetimlerinden geçmeyecek, kendinden imzalı bir sertifika döndürür.

Bu davranış, OpenSSL istemcisi çıkışının başlarında bulunan aşağıdaki satır kontrol edilerek onaylanabilir:

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

Bu hataya SNI'yı desteklemeyen bir OpenSSL sürümünün kullanılması veya SNI'nın açıkça devre dışı bırakılmış olduğu OpenSSL kitaplığını kullanan bir uygulama yol açabilir.

Bağlantı reddedildi

Aşağıdaki çıkış döndürülürse ({timestamp} kısmı mikrosaniye cinsinden bir UNIX zaman damgasıdır), TLS iletişiminin başlayabilmesi için TCP bağlantısı etkin biçimde reddedilir:

{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

Bu sorun şu nedenlerle oluşabilir:

  • Yerel makinede uygulama düzeyinde veya sistem düzeyinde bir güvenlik duvarı
  • Aynı fiziksel ağda veya yukarı akış ağında bulunan bir güvenlik duvarı

Sorunun nedenini araştırmak için, hangi ana makinenin bağlantıyı reddettiğini belirlemek üzere tcptraceroute komutunu kullanın (örneğin, tcptraceroute ldap.google.com 636).

İlgili makaleler

Bu size yardımcı oldu mu?

Bunu nasıl iyileştirebiliriz?
Arama
Aramayı temizle
Aramayı kapat
Ana menü
17189624901929270531
true
Yardım Merkezinde Arayın
true
true
true
false
false