सुरक्षित LDAP कनेक्टिविटी की जांच करना

यह सुविधा इन वर्शन में उपलब्ध है: Frontline Standard और Frontline Plus; Business Plus; Enterprise Standard और Enterprise Plus; Education Fundamentals, Education Standard, और Education Plus; Enterprise Essentials Plus. अपने वर्शन की तुलना करें

अपने LDAP क्लाइंट को Secure LDAP सेवा से कनेक्ट करने से पहले, ज़रूरी नहीं कि आप ldapsearch, ADSI या ldp.exe जैसे सामान्य टूल का इस्तेमाल करके, कनेक्टिविटी की जांच करें. अगर आपको LDAP क्लाइंट को सेवा से कनेक्ट करने में गड़बड़ियां आती हैं, तो इन टूल का इस्तेमाल समस्या हल करने के लिए भी किया जा सकता है.

यहां दिए गए सेक्शन में बताई गई जांचों से, यह समझने में मदद मिलती है कि क्या आपके कॉन्फ़िगरेशन में कोई समस्या है. साथ ही, सामान्य गड़बड़ी के मैसेज और उन समस्याओं को ठीक करने के सुझाव भी मिलते हैं.

इस लेख में ये सेक्शन शामिल हैं:

ध्यान दें: अगर आपको इस प्रोसेस के दौरान Google Workspace की सहायता टीम या Cloud Identity Premium की सहायता टीम से संपर्क करना है, तो कमांड का आउटपुट सेव करना न भूलें. सहायता टीम के साथ आउटपुट शेयर करने से पहले, उसमें से व्यक्तिगत पहचान से जुड़ी कोई भी जानकारी हटाना न भूलें.

कनेक्टिविटी की पुष्टि करना और LDAP क्वेरी चलाना

Google Admin console में Secure LDAP सेवा सेट अप करने के बाद, Secure LDAP से कनेक्टिविटी की पुष्टि करने के लिए, इन तीन आसान टूल में से किसी एक का इस्तेमाल किया जा सकता है: ldapsearch, ADSI या ldp.exe. ज़्यादा जानकारी और निर्देशों के लिए, यहां दिए गए सेक्शन देखें.

ldapsearch

कमांड लाइन से ldapsearch यूटिलिटी का इस्तेमाल करके, सामान्य एलडीएपी क्वेरी करें. LDAP क्वेरी का नतीजा सही होने का मतलब है कि LDAP क्लाइंट, टीएलएस सेशन, और टीसीपी कनेक्शन ठीक से काम कर रहे हैं.

ldapsearch की मदद से कनेक्टिविटी की जांच करने के लिए:

  1. LDAP का इस्तेमाल करने वाले क्लाइंट जोड़ें में दिए गए निर्देशों का पालन करके, LDAP कॉन्फ़िगरेशन बनाएं और प्रमाणपत्र डाउनलोड करें.

    ध्यान दें: टेस्टिंग एनवायरमेंट को आसान बनाने के लिए, पक्का करें कि संगठन की उस इकाई में कम से कम एक उपयोगकर्ता हो जिसके लिए आपको LDAP क्लाइंट को ऐक्सेस करने की अनुमति देनी है.

  2. LDAP क्वेरी को लागू करना. इस उदाहरण में, किसी उपयोगकर्ता के बारे में क्वेरी की गई है. ज़्यादा जानकारी के लिए, 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})'

    प्लेसहोल्डर की जगह ये वैल्यू डालें:

    • {crt_file} .crt फ़ाइल का नाम
    • {key_file} .key फ़ाइल का नाम
    • {domain} डोमेन नेम का हर हिस्सा. उदाहरण के लिए: example.com "dc=example,dc=com" बन जाएगा
    • {user_email} डोमेन में मौजूद किसी उपयोगकर्ता का मुख्य ईमेल पता.

ldapsearch का इस्तेमाल करने के बारे में नोट

  • अगर कोई BindDN वैल्यू नहीं दी जाती है, तो ldapsearch, खोज को अनुमति देने के लिए कुंजी और सर्टिफ़िकेट का इस्तेमाल करता है.
  • अगर BindDN वैल्यू, ऐसा एलडीएपी उपयोगकर्ता नाम है जिसे आपने Admin console में जनरेट किया है, तो ldapsearch, एलडीएपी क्लाइंट की उन अनुमतियों का इस्तेमाल करेगा जिन्हें Admin console में कॉन्फ़िगर किया गया है.

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

  • अगर BindDN वैल्यू, Workspace उपयोगकर्ता का ईमेल पता या LDAP डिस्टिंग्विश्ड नेम है, तो ldapsearch उस उपयोगकर्ता के क्रेडेंशियल का इस्तेमाल करके, उसकी अनुमतियों के आधार पर खोज करेगा.

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

stunnel के साथ ldapsearch का इस्तेमाल करना

अगर आपको डिप्लॉयमेंट के लिए stunnel का इस्तेमाल करना है, तो यह तरीका अपनाएं:

  1. Admin console में, ldapsearch के लिए ज़रूरी उपयोगकर्ता नाम और पासवर्ड बनाने के लिए, ऐक्सेस क्रेडेंशियल जनरेट करें.
  2. इस कमांड का इस्तेमाल करें:

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

    प्लेसहोल्डर की जगह ये वैल्यू डालें:

    • {username} Admin Console में जनरेट किए गए क्रेडेंशियल से मिला उपयोगकर्ता नाम
    • {password} Admin Console में जनरेट किए गए क्रेडेंशियल का पासवर्ड
    • {stunnel_host} : आपके नेटवर्क में stunnel चलाने वाली मशीन का आईपी पता या होस्टनेम.
    • {stunnel_port} : वह पोर्ट जहां stunnel चल रहा है. अपने stunnel कॉन्फ़िगरेशन की जांच करें
    • {user_email} डोमेन में मौजूद किसी उपयोगकर्ता का प्राइमरी ईमेल पता

ldapsearch कमांड के काम करने का उदाहरण

ldapsearch कमांड का आउटपुट मिलने पर, LDIF फ़ॉर्मैट में उपयोगकर्ता का ईमेल पता दिखेगा. यह वही ईमेल पता होगा जो LDAP क्लाइंट बनाते समय डाला गया था.

उदाहरण के लिए:

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

संभावित गड़बड़ियां

  • OpenLDAP क्लाइंट और/या लाइब्रेरी को SNI की सुविधा के बिना कंपाइल किया गया है

    एलडीएपी क्लाइंट (इस मामले में OpenLDAP) के लिए, SNI (सर्वर नेम इंडिकेशन) की सुविधा उपलब्ध होना ज़रूरी है. अगर एसएनआई उपलब्ध नहीं है, तो आपको इस तरह की गड़बड़ी दिख सकती है:

    SASL/EXTERNAL authentication started

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

    सुझाव:
    • अगर MacOS का इस्तेमाल किया जा रहा है, तो SASL डिफ़ॉल्ट रूप से चालू होता है. इसे "-x" विकल्प की मदद से बायपास किया जा सकता है.
    • ldapsearch में -d5 विकल्प जोड़ें और इस लाइन के लिए आउटपुट देखें:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
  • ldapsearch से स्टेटस 0 (सफल) मिलता है, लेकिन कोई उपयोगकर्ता आउटपुट नहीं होता

    क्लाइंट सर्टिफ़िकेट के साथ ldapsearch विकल्प -x (SASL ऑथेंटिकेशन का इस्तेमाल करें) को चुनने पर, पुष्टि हो जाएगी. हालांकि, डोमेन में उपयोगकर्ताओं की सूची नहीं दिखेगी.

    सुझाया गया तरीका: विकल्प -x को हटाएं और फिर से कोशिश करें.

ADSI Edit (Windows)

  1. क्लाइंट सर्टिफ़िकेट इंस्टॉल करने के लिए, ldp.exe (Windows) में दिए गए पहले से ग्यारहवें चरण तक का पालन करें.
  2. कार्रवाई > इससे कनेक्ट करें… पर जाएं
  3. कनेक्शन की ये सेटिंग डालें:

    नाम: अपने कनेक्शन के लिए कोई नाम डालें. जैसे, Google LDAP.
    कनेक्शन पॉइंट: "डिस्टिंग्विश्ड नेम या नेमिंग कॉन्टेक्स्ट चुनें या टाइप करें"
    अपना डोमेन नाम, DN फ़ॉर्मैट में डालें. उदाहरण के लिए, example.com के लिए dc=example,dc=com.

    कंप्यूटर: "कोई डोमेन या सर्वर चुनें या टाइप करें"
    ldap.google.com

    एसएसएल पर आधारित एन्क्रिप्शन का इस्तेमाल करें: चुना गया
  4. ऐडवांस... पर क्लिक करें और यह जानकारी डालें:

    क्रेडेंशियल डालें: सही का निशान लगाएं
    उपयोगकर्ता नाम: Admin console से ऐक्सेस क्रेडेंशियल का उपयोगकर्ता नाम
    पासवर्ड: Admin console से ऐक्सेस क्रेडेंशियल का पासवर्ड
    पोर्ट नंबर: 636
    प्रोटोकॉल: LDAP
    सिंपल बाइंड ऑथेंटिकेशन: सही का निशान लगाएं
  5. ठीक है पर क्लिक करें. इसके बाद, ठीक है पर फिर से क्लिक करें.
  6. कनेक्ट हो जाने पर, बेस डीएन में मौजूद डायरेक्ट्री का कॉन्टेंट, दाईं ओर मौजूद पैनल में दिखता है.

ldp.exe (Windows)

  1. OpenSSL इंस्टॉल करें.
  2. सर्टिफ़िकेट और कुंजी फ़ाइलों को PKCS12 फ़ॉर्मैट वाली एक फ़ाइल में बदलें. कमांड प्रॉम्प्ट पर, यह डालें:

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

    आउटपुट फ़ाइल को एन्क्रिप्ट (सुरक्षित) करने के लिए पासवर्ड डालें.
  3. कंट्रोल पैनल पर जाएं.
  4. सर्च बॉक्स में "सर्टिफ़िकेट" खोजें. इसके बाद, उपयोगकर्ता के सर्टिफ़िकेट मैनेज करें पर क्लिक करें.
  5. कार्रवाई > सभी टास्क > इंपोर्ट करें… पर जाएं
  6. मौजूदा उपयोगकर्ता को चुनें और आगे बढ़ें पर क्लिक करें.
  7. ब्राउज़ करें… पर क्लिक करें
  8. डायलॉग बॉक्स के सबसे नीचे दाएं कोने में मौजूद, फ़ाइल टाइप ड्रॉपडाउन में जाकर, पर्सनल इन्फ़ॉर्मेशन एक्सचेंज (&ast;.pfx;&ast;.p12) चुनें.
  9. दूसरे चरण में बनाई गई ldap-client.p12 फ़ाइल चुनें. इसके बाद, खोलें पर क्लिक करें और फिर आगे बढ़ें पर क्लिक करें.
  10. दूसरे चरण में दिया गया पासवर्ड डालें और आगे बढ़ें पर क्लिक करें.
  11. Personal सर्टिफ़िकेट स्टोर को चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें. इसके बाद, पूरा करें पर क्लिक करें.
  12. Ldp.exe चलाएं.
  13. कनेक्शन > कनेक्ट करें... पर जाएं
  14. कनेक्शन की यह जानकारी डालें:

    सर्वर: ldap.google.com
    पोर्ट: 636
    कनेक्शनलेस: सही का निशान नहीं लगा है
    एसएसएल: सही का निशान लगा है
  15. ठीक है पर क्लिक करें.
  16. देखें > ट्री पर जाएं.
  17. बेस डीएन डालें. यह DN फ़ॉर्मैट में आपका डोमेन नाम है. उदाहरण के लिए, example.com के लिए dc=example,dc=com.
  18. ठीक है पर क्लिक करें.
  19. कनेक्ट हो जाने पर, बेस डीएन में मौजूद डायरेक्ट्री का कॉन्टेंट, दाईं ओर मौजूद पैनल में दिखता है.

अगर ज़रूरत हो, तो कनेक्टिविटी की बुनियादी जांच करें

अगर आपको कनेक्टिविटी की पुष्टि करें और एलडीएपी क्वेरी चलाएं में कोई नतीजा नहीं मिलता है, तो कनेक्टिविटी की जांच करने के लिए, इस सेक्शन में दिए गए निर्देशों का पालन करें. अगर ldapsearch, उपयोगकर्ता की उम्मीद के मुताबिक नतीजे नहीं देता है और यह साफ़ तौर पर नहीं बताता है कि टीएलएस सेशन सही तरीके से काम कर रहा है, तो OpenSSL क्लाइंट का इस्तेमाल करके यह पुष्टि करें कि OpenLDAP जिन नेटवर्क लेयर पर निर्भर करता है वे सही तरीके से काम कर रही हैं.

कनेक्टिविटी की बुनियादी जांच करने के लिए:

  1. अपने ऑपरेटिंग सिस्टम के लिए, openssl क्लाइंट यूटिलिटी इंस्टॉल करें.

    ज़्यादातर GNU/Linux डिस्ट्रिब्यूशन में, पैकेज का नाम "openssl" होता है. अन्य ऑपरेटिंग सिस्टम के बारे में जानकारी देखें.

  2. openssl क्लाइंट का इस्तेमाल करके, Secure LDAP सेवा से मैन्युअल तरीके से कनेक्ट करें:

    openssl s_client -connect ldap.google.com:636
    

    पुष्टि करें कि SSL नेगोशिएशन पूरा हो गया है. इसके लिए, openssl s_client के आउटपुट के आखिर में यह लाइन मौजूद होनी चाहिए:

    Verify return code: 0 (ok)
    

संभावित गड़बड़ियां

OpenSSL क्लाइंट/लाइब्रेरी, SNI (सर्वर नेम इंडिकेशन) के साथ काम नहीं करती

कनेक्टिविटी की जांच के दौरान, यह आउटपुट मिल सकता है:

Verify return code: 18 (self signed certificate)

Secure LDAP सेवा के लिए, ऐसे टीएलएस क्लाइंट की ज़रूरत होती है जो एसएनआई (सर्वर नेम इंडिकेशन) का इस्तेमाल करके टीएलएस सेशन शुरू कर सके और उसके साथ काम कर सके. अगर टीएलएस क्लाइंट, एसएनआई के साथ काम नहीं करता है, तो टीएलएस सर्वर (ldap.google.com) एक ऐसा सर्टिफ़िकेट दिखाता है जिस पर खुद के हस्ताक्षर होते हैं. यह सर्टिफ़िकेट, सीए की पुष्टि करने वाली जांचों को पास नहीं करेगा. इससे पता चलता है कि एसएनआई ज़रूरी है.

इस व्यवहार की पुष्टि करने के लिए, आउटपुट की शुरुआत में मौजूद इस लाइन के लिए OpenSSL क्लाइंट का आउटपुट देखें:

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

इस गड़बड़ी की वजहें ये हो सकती हैं: OpenSSL का ऐसा वर्शन जो एसएनआई के साथ काम नहीं करता या ऐसा ऐप्लिकेशन जो एसएनआई को साफ़ तौर पर बंद करके OpenSSL लाइब्रेरी का इस्तेमाल करता है.

कनेक्शन अस्वीकार किया गया

अगर नीचे दिया गया आउटपुट मिलता है, तो इसका मतलब है कि टीसीपी कनेक्शन को चालू होने से पहले ही अस्वीकार कर दिया गया है. यहां {timestamp}, माइक्रोसेकंड में यूनिक्स टाइमस्टैंप है:

{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

ऐसा इन वजहों से हो सकता है:

  • लोकल मशीन पर ऐप्लिकेशन-लेवल या सिस्टम-लेवल फ़ायरवॉल
  • एक ही फ़िज़िकल नेटवर्क या अपस्ट्रीम नेटवर्क पर फ़ायरवॉल

जांच करने के लिए, tcptraceroute का इस्तेमाल करके यह पता लगाएं कि कौनसी होस्ट कनेक्शन को अस्वीकार कर रही है. उदाहरण के लिए, tcptraceroute ldap.google.com 636.