ユーザーの認証の標準的な方法であると思った認証にuidを使用してサービスを認証するのに問題があります。したがって、基本的に、私のユーザーは次のようにLDAPに追加されます。
# jsmith, Users, example.com
dn: uid=jsmith,ou=Users,dc=example,dc=com
uidNumber: 10003
loginShell: /bin/bash
sn: Smith
mail: [email protected]
homeDirectory: /home/jsmith
displayName: John Smith
givenName: John
uid: jsmith
gecos: John Smith
gidNumber: 10000
cn: John Smith
title: System Administrator
しかし、次のような一般的なWebアプリまたはサービスを使用して認証しようとすると、次のようになります。
jsmith
password
私は得ます:
ldapsearch -x -h ldap.example.com -D "cn=jsmith,ou=Users,dc=example,dc=com" -W -b "dc=example,dc=com"
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
しかし、私が使用する場合:
ldapsearch -x -h ldap.example.com -D "uid=jsmith,ou=Users,dc=example,dc=com" -W -b "dc=example,dc=com"
できます。
ただし...ほとんどのWebアプリと認証方法は別の方法を使用しているようです。したがって、ユーザーを次のように指定しない限り、私が使用しているWebアプリでは:uid=smith,ou=users,dc=example,dc=com
何も機能しません。
Webアプリケーションでは、ユーザーフィールドにjsmithを入力するだけです。
私のLDAPが「新しい」cn=config
設定を保存する方法。だから誰かが私が欠けている明らかなldifを持っているなら提供してください。
さらに情報が必要な場合はお知らせください。これはUbuntu12.04のOpenLDAPです。
例のldapsearch
ツールは、単純なBINDを使用して接続の承認状態を変更します。単純なBIND操作には、識別名と資格情報が必要です。識別名はuid=jsmith,ou=Users,dc=example,dc=com
であり、例として示されているエントリのcn=jsmith,ou=Users,dc=example,dc=com
ではありません。
このディレクトリサーバー構成により、実際には識別名invalid credentials
が存在しない場合に、サーバーはcn=jsmith,ou=Users,dc=example,dc=com
の結果コードを返します。これは推奨される構成です。攻撃者に提供する情報が少なくなります。