OpenLDAP はローカルデータベースではなくプロキシキャッシュとしてのみ機能します。

OpenLDAP はローカルデータベースではなくプロキシキャッシュとしてのみ機能します。

ローカルのLDAPプロキシキャッシュを実行しようとしています。アイデアは次のとおりです。

  • 現在、コンピュータは(A)すべてのLDAP要求をリモートLDAPサーバーに送信しています。(L)
  • 代わりに、間の仲介者として機能Aする実行中のプロキシキャッシュ「サーバー」が必要です。キャッシュはすべてのクエリとその属性の両方を保存します(いっぱいに「リサイクル」を開始するまで)。AL

OpenLDAP用のプロキシキャッシュエンジンビューには良いですが、設定方法に関する情報はあまりありません。サンプル設定ファイルがありますが、動作させることはできません。

これはプロキシキャッシュ専用であるため、ローカルデータベースを設定する必要はありません。したがって、構成ファイルは次のようになります。

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

moduleload pcache.la

database        ldap
suffix          "dc=int,dc=somedomain,dc=com"
rootdn          "dc=int,dc=somedomain,dc=com"
uri             ldap://dc-04.int.somedomain.com:389

overlay pcache
pcache         hdb 100000 1 1000 100
pcacheAttrset  0 *
pcacheTemplate (sn=) 0 3600

cachesize 20
directory /var/lib/ldap
index       objectClass eq
index       cn eq,sub

これで、ldap://localhostへの要求がリモートLDAP(キャッシュでない場合)にミラーリングされるようになりました。

このコマンドを使用して、リモートサーバーで認証をテストします。

ldapwhoami -vvv -h dc-04.int.somedomain.com -p 389 -D [email protected] -x -w <passwd>

それはうまくいき、私は力を得ました。

ただし、localhostで同じコマンドを実行しようとすると、次のようになります。

ldapwhoami -vvv -h localhost -p 389 -D [email protected] -x -w <passwd>

失敗した、いわば

ldap_initialize( ldap://localhost:389 )
ldap_bind: Invalid DN syntax (34)
    additional info: invalid DN

Slapdはlocalhostを受け取り、netstatには次の行が含まれています。

tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      10352/slapd

私が逃したものはありますか?ありがとう

答え1

ldap_bind:無効なDN構文(34)追加情報:無効なDN

これは、無効な識別名が使用されたことを意味します。[email protected]単純バインド要求でバインドDNなどを使用することは、MS Active Directoryでのみ機能し、他のLDAPサーバーでは機能しません。したがって、ローカル LDAP プロキシは要求を拒否し、他のアクションを実行しません。

関連情報