0

InetOrgPerson、organizationPerson、person、および posixaccount オブジェクトクラスを使用しています。

cn/uid の代わりにバインディング (認証) に使用できるように、mail 属性を RDN/DN にしたいと考えています。

どうすればいいですか?

PS: LDAP は初めてです。

4

1 に答える 1

0

LDAP API 呼び出しは です。ldap_modrdn()通常、modrdn()C 以外の API で呼び出されるだけです。

解決しようとしている問題には 2 つの異なるアプローチがあります。すべてのオブジェクトの名前を変更するのではなく、より従来のアプローチは、検索またはプロキシユーザーを使用してフィルターに基づいて DN を見つけることです。これにより、ディレクトリ内の名前と階層が隠されます。

こんなふうになります:

  1. メールとパスワードのユーザータイプ
  2. アプリケーションは、アクセスが制限された検索ユーザーとしてディレクトリにバインドします
  3. (mail=whatever)ユーザー コンテナー内のフィルターを使用してオブジェクトを検索する
  4. ユーザーが 1 人だけ見つかった場合は、完全な DN とユーザー パスワードを使用して再バインドを試みます。
  5. 成功した場合は、ログインに進みます

SO で「ldap search authenticate」を検索すると、開発している内容に応じて、適切なコードを見つけることができるはずです。

于 2013-02-20T11:38:39.650 に答える