0

認証のニーズのために PAM と通信/依存する Java ベースのアプリケーションがあります。ユーザーは、ローカル (シャドウ) または外部 (ディレクトリ サーバー) のユーザーです。Java アプリケーションは非 root ユーザー (juser など) として実行されます。

LDAP 構成では、バインド パスワードはプレーン テキストで /etc/ldap.conf に保存されます。このセキュリティ ギャップを克服するために、binddn を rootbinddn に置き換え、bindpassword を ldap.secret に移動しました。以下は、LDAP 構成ファイルの許可と所有権です。

640 ルート jusergroup /etc/ldap.conf

600 ルート root /etc/ldap.secret

ユーザーは SSH 経由でシームレスにシステムにアクセスできますが (binddn を rootbinddn に変更した後)、アプリケーションへの認証は失敗します。

興味深いのは、アプリケーションを openldap サーバーに構成すると、すべてのユーザーが SSH および Java アプリケーションに対して正常に認証できることです。ただし、MS Active Directory サーバーに設定すると、SSH 認証は成功しますが、Java アプリケーションへの認証は失敗します (プロセス所有者が juser であるため)。root ユーザーとして Java アプリケーションを再起動すると、すべての認証 (SSH および Java アプリケーション) が成功します。

以下は、Active Directory サーバーのイベント ログからの例外です。

内部イベント: LDAP サーバーがエラーを返しました。

追加データ エラー値: 00000000: LdapErr: DSID-0C090627、コメント: この操作を実行するには、接続でバインドを成功させる必要があります。データ 0、vece

詳細については、ヘルプとサポート センター > http://go.microsoft.com/fwlink/events.aspを参照してください。

  1. openldap と MS Active Directory の間でバインド動作が異なるのはなぜですか?
  2. LDAP バインド中に、要求を行っているユーザーはディレクトリ サーバーに渡されますか?
  3. Java アプリケーションを juser として引き続き実行できるように、認証の検証中に root クレデンシャルを使用するように PAM に指示するメカニズムはありますか?

ありがとう

4

0 に答える 0