কমান্ড লাইনের মাধ্যমে আমি কীভাবে এলডিএপি দিয়ে অনুমোদন করব?


35

এলডিএপি সার্ভারটি সোলারিতে হোস্ট করা হয়। ক্লায়েন্টটি সেন্টোস OS ওপেনডিএডিএপ / এনএসএলসিডি / এসএসএইচ প্রমাণীকরণ এলডিএপি মাধ্যমে সূক্ষ্মভাবে কাজ করে, তবে এলডিএপি সমস্যাগুলি ডিবাগ করার জন্য আমি ldapsearch কমান্ড ব্যবহার করতে সক্ষম নই।

[root@tst-01 ~]# ldapsearch
SASL/EXTERNAL authentication started
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
        additional info: SASL(-4): no mechanism available:
[root@tst-01 ~]# cat /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://ldap1.tst.domain.tld ldap://ldap2.tst.domain.tld
BASE dc=tst,dc=domain,dc=tld
[root@tst-01 ~]# ls -al /etc/openldap/cacerts
total 12
drwxr-xr-x. 2 root root 4096 Jun  6 10:31 .
drwxr-xr-x. 3 root root 4096 Jun 10 10:12 ..
-rw-r--r--. 1 root root  895 Jun  6 10:01 cacert.pem
lrwxrwxrwx. 1 root root   10 Jun  6 10:31 cf848aa4.0 -> cacert.pem
[root@tst-01 ~]#

আমি প্যারামিটার হিসাবে ldapsearch /etc/openldap/cacerts/cacert.pem দেওয়ার মাধ্যমে একটি শংসাপত্রের সাথে প্রমাণীকরণের চেষ্টা করেছি, তবে এটি প্রমাণীকরণের জন্য এই শংসাপত্রটি গ্রহণ করে নি।

উত্তর:


60

আপনি এসএএসএল বন্ধ করতে এবং "-x" বিকল্পের সাহায্যে সরল প্রমাণীকরণ ব্যবহার করতে পারেন। উদাহরণস্বরূপ, কোনও নির্দিষ্ট ব্যবহারকারীর সন্ধানের জন্য অনুসন্ধান

ldapsearch -x -D "uid=search-user,ou=People,dc=example,dc=com" \
           -W -H ldap://ldap.example.com -b "ou=People,dc=example,dc=com" \
           -s sub 'uid=test-user'

দ্বারা "পরীক্ষা-ব্যবহারকারী" খুঁজে পাবেন

  • -ডি - বাইন্ড ব্যবহারকারী "অনুসন্ধান-ব্যবহারকারী" ব্যবহার করুন
  • -ডাব্লু - পাসওয়ার্ডের জন্য প্রম্পট
  • -H - এলডিএপি সার্ভারের URL। এক্ষেত্রে নন-এসএসএল; এসএসএলের জন্য "ldaps: //" ব্যবহার করুন
  • -বি - অনুসন্ধান বেস
  • -s - অর্থাৎ - অনুসন্ধানের সুযোগ বেস গাছের বেস, জন্য এক এবং নিচে স্তরের উপর জন্য সাব recursively ট্রি নিচে অনুসন্ধানের জন্য (কিছু সময় নিতে পারে)
  • অবশেষে অনুসন্ধান ফিল্টারটি একটি অ-বিকল্প যুক্তি হিসাবে। এই ক্ষেত্রে আমরা "পরীক্ষা-ব্যবহারকারী" এর ইউডির সন্ধান করব

2
ফ্রেডের ঠিক আছে, ব্যতীত আপনার যদি অনুসন্ধানের ভিত্তি বা হোস্টটি নির্দিষ্ট করার প্রয়োজন হয় না তবে আপনি নীচের সাথে উল্লিখিত সন্তুষ্ট থাকলে /etc/openldap/ldap.confঅবশ্যই নিম্নলিখিতটি কাজ করা উচিত: ldapsearch -x -D "<bind dn>" -W <ক্যোরি >
জেসন টান


এটি "ব্যবহারকারীর নাম" বলতে কী বোঝায় তা নির্ভর করে। বাইন্ড ডিএন (আসলে ক্যোয়ারী চালানোর জন্য প্রমাণীকরণের জন্য) -ডি আর্গুমেন্ট দ্বারা দেওয়া হয়। প্রকৃত অনুসন্ধান, ব্যবহারকারী রেকর্ডের জন্য এই উদাহরণে, সর্বশেষ যুক্তি হিসাবে ফিল্টারটিতে দেওয়া হয়।
ফ্রেড ক্লাউজেন

1
অনেক ধন্যবাদ! আপনি আমার জীবন বাঁচিয়েছেন :)
মার্সলো

6

দেখে মনে হচ্ছে যে আমি এখানে একই প্রশ্ন জিজ্ঞাসা করেছি: https://stackoverflow.com/questions/27571558/how-was-authentication-built-on-ldap

Http://thecarlhall.wordpress.com/2011/01/04/ldap-authentication-authorization-dissected- and-digested / এ দেখুন :

  • এলডিএপি সার্ভারে একটি সংযোগ পান।
  • অ্যাপ্লিকেশন ব্যবহারকারী হিসাবে বাঁধাই।
  • প্রমাণীকরণের জন্য ব্যবহারকারীর ডিএন (বিশিষ্ট নাম) অনুসন্ধান করুন।
  • পদক্ষেপ 3 থেকে ডিএন ব্যবহার করে প্রমাণীকরণের জন্য ব্যবহারকারী হিসাবে বাঁধুন।

এটি সংক্ষেপিত হতে পারে (কমান্ড লাইনে পরীক্ষা):

$ ldapsearch -x -h ldap.company.com -s sub -b 'dc=europe,dc=com' "uid=XYZ"
....
dn: uid=XYZ,dc=sales,dc=europe,dc=com
...
$ ldapsearch -W -h ldap.company.com -D 'uid=XYZ,dc=sales,dc=europe,dc=com' \
    -s sub -b 'dc=europe,dc=com' "uid=XYZ"

1

দ্রষ্টব্য, আপনি যদি নিজের সম্পূর্ণ বাইন্ড ডিএন না জানেন তবে আপনি নিজের সাধারণ ব্যবহারকারীর নাম বা ইমেলটি ব্যবহার করতে পারেন -U

ldapsearch -v -h contoso.com -U turiya.gouw@contoso.com -w 'MY_PASSWORD' -b 'DC=contoso,DC=com' '(objectClass=computer)'

0

আমরা ফ্রিআইপিএ / আইডিএম ব্যবহার করছি এবং আমি নিম্নলিখিতটি ব্যবহার করে এর বিরুদ্ধে প্রমাণীকরণ করতে সক্ষম হয়েছি:

$ ldapsearch -h idm-01a.somednsdom.com \
    -D 'uid=<my username>,cn=users,cn=accounts,dc=somedcdom,dc=com' \
    -o ldif-wrap=no \
    -b 'cn=accounts,dc=somedcdom,dc=com' \
    -W uid=<my username>
ব্যাখ্যা
  • এটি আশেপাশের সমস্ত বিবরণ ফিরিয়ে দেবে uid=<my username>
  • uid=<my username> ফিল্টার (আরএফসি 4515 অনুবর্তী LDAP অনুসন্ধান ফিল্টার)
  • uid=<my username>ক্যোয়ারী / ফিল্টার সঞ্চালন হয়
  • o ldif-wrap=no ফলাফল মোড়ানো অক্ষম করে
  • -Wবাহিনী ldapsearchবেঁধে বিশিষ্ট নামের জন্য পাসওয়ার্ড প্রশ্নেরuid=<my username>,cn=users,cn=accounts,dc=somedcdom,dc=com
  • এই ব্যবহারকারীর জন্য পাসওয়ার্ডের জন্য অনুরোধ জানানো হলে প্রম্পটটি এর মতো দেখাবে:

    Enter LDAP Password:
    
Refereneces

ldapsearchম্যানপেজ এবং সিএলআই সহায়তা থেকে রেফারেন্সের জন্য:

   -D binddn
          Use the Distinguished Name binddn to bind to the LDAP directory.  
          For SASL binds, the server is expected to ignore this value.

   -b searchbase
          Use searchbase as the starting point for the search instead of the 
          default.

   -W     Prompt for simple authentication.  This is used instead of specifying 
          the password on the command line.

  -o <opt>[=<optparam] general options
             nettimeout=<timeout> (in seconds, or "none" or "max")
             ldif-wrap=<width> (in columns, or "no" for no wrapping)

সম্পূর্ণ উদাহরণ

$ ldapsearch -h idm-01a.somednsdom.com \
    -D 'uid=joeuser,cn=users,cn=accounts,dc=somedcdom,dc=com' \
    -o ldif-wrap=no \
    -b 'cn=accounts,dc=somedcdom,dc=com' \
    -W uid=joeuser

# extended LDIF
#
# LDAPv3
# base <cn=accounts,dc=somedcdom,dc=com> with scope subtree
# filter: uid=joeuser
# requesting: ALL
#

# joeuser, users, accounts, somedcdom.com
dn: uid=joeuser,cn=users,cn=accounts,dc=somedcdom,dc=com
memberOf: cn=ipausers,cn=groups,cn=accounts,dc=somedcdom,dc=com
memberOf: cn=sysadmin,cn=groups,cn=accounts,dc=somedcdom,dc=com
memberOf: ipaUniqueID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX,cn=sudorules,cn=sudo,dc=somedcdom,dc=com
memberOf: cn=eng-systems,cn=groups,cn=accounts,dc=somedcdom,dc=com
memberOf: ipaUniqueID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX,cn=hbac,dc=somedcdom,dc=com
memberOf: cn=admins,cn=groups,cn=accounts,dc=somedcdom,dc=com
memberOf: ipaUniqueID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX,cn=sudorules,cn=sudo,dc=somedcdom,dc=com
memberOf: cn=User Administrator,cn=roles,cn=accounts,dc=somedcdom,dc=com
memberOf: cn=User Administrators,cn=privileges,cn=pbac,dc=somedcdom,dc=com
memberOf: cn=System: Add User to default group,cn=permissions,cn=pbac,dc=somedcdom,dc=com
...
...
krbLoginFailedCount: 0
krbLastFailedAuth: 20190320223946Z
loginShell: /bin/bash
krbExtraData:: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
krbPasswordExpiration: 20190829144625Z
krbLastPwdChange: 20190302144625Z
krbLastAdminUnlock: 20190111080021Z
ipaSshPubKey: ssh-rsa A....XXXXXXXXXXXX...jelByox0PM5Q== joeuser@somednsdom.com
mepManagedEntry: cn=joeuser,cn=groups,cn=accounts,dc=somedcdom,dc=com
displayName: Joe User
uid: joeuser
krbCanonicalName: joeuser@SOMEDCDOM.COM
objectClass: top
objectClass: person
objectClass: organizationalperson
objectClass: inetorgperson
objectClass: inetuser
objectClass: posixaccount
objectClass: krbprincipalaux
objectClass: krbticketpolicyaux
objectClass: ipaobject
objectClass: ipasshuser
objectClass: ipaSshGroupOfPubKeys
objectClass: mepOriginEntry
initials: JU
gecos: Joe User
sn: Mingolelli
homeDirectory: /home/joeuser
mail: joeuser@somednsdom.com
krbPrincipalName: joeuser@SOMEDCDOM.COM
givenName: Joe
cn: Joe User
ipaUniqueID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
uidNumber: 900000000
gidNumber: 900000000
krbPwdPolicyReference: cn=admins,cn=SOMEDCDOM.COM,cn=kerberos,dc=somedcdom,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.