web-dev-qa-db-ja.com

OpenLDAP認証UIDとCNの問題

ユーザーの認証の標準的な方法であると思った認証に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です。

3
TagWolf

例の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の結果コードを返します。これは推奨される構成です。攻撃者に提供する情報が少なくなります。

2
Terry Gardner