web-dev-qa-db-ja.com

コマンドラインからLDAPで認証するにはどうすればよいですか?

LDAPサーバーはSolarisでホストされています。クライアントはCentOSです。 LDAPを介したOpenLDAP/NSLCD/SSH認証は正常に機能しますが、ldapsearchコマンドを使用してLDAPの問題をデバッグできません。

[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 ~]#

/etc/openldap/cacerts/cacert.pemをパラメーターとして指定して、ldapsearchを介して証明書で認証を試みましたが、この証明書を認証に受け入れませんでした。

37
ujjain

SASLをオフにして、 "-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'

「test-user」を見つけます

  • -D-バインドユーザー「search-user」を使用します
  • -W-パスワードのプロンプト
  • -H-LDAPサーバーのURL。この場合は非SSL。 SSLには「ldaps://」を使用します
  • -b-検索ベース
  • -s-検索範囲-つまり、ツリーのベースにはbase、レベルダウンにはone、再帰的にはsubツリーを検索(しばらくかかる場合があります)
  • 最後に、非オプション引数としての検索フィルター。この場合、「test-user」のuidを検索します
63
Fred Clausen

私は同じ質問をするようです: https://stackoverflow.com/questions/27571558/how-was-authentication-built-on-ldap

参照してください http://thecarlhall.wordpress.com/2011/01/04/ldap-authentication-authorization-dissected-and-digested/

  • LDAPサーバーへの接続を取得します。
  • アプリケーションユーザーとしてバインドします。
  • 認証するユーザーのDN(識別名)を検索します。
  • 手順3のDNを使用して認証されるユーザーとしてバインドします。

次のように要約できます(コマンドラインでの実験)。

$ 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"
6
gavenkoa

完全なバインドDNがわからない場合は、通常のユーザー名を使用するか、-Uでメールを送信することもできます。

ldapsearch -v -h contoso.com -U [email protected] -w 'MY_PASSWORD' -b 'DC=contoso,DC=com' '(objectClass=computer)'
1
turiyag