ldap。binddn_passwd とは何ですか?

ldap。binddn_passwd とは何ですか?

LDAP で Nginx をインストールしましたが、うまくいきました。しかし、「binddn」と「binddn_passwd」の目的がわかりません。



ldap_server dc1 { 
url ldap://dc1.alexlinux.lan:3268/DC=alexlinux,DC=lan?sAMAccountName?sub?(objectClass=person); 
binddn "alexlinux\\comp"; 
binddn_passwd 123; 
group_attribute member; 
group_attribute_is_dn on; 
require valid_user; 
require group "CN=systemtest,OU=Groups,DC=alexlinux,DC=lan"; 
} 

ブラウザを開くと、ドメインのログインとパスワードを入力します。これらのパラメータがないと認証は機能しません。ありがとうございます。

答え1

実際には、LDAP を使用して認証する方法は 2 つあります。

  • 最初のものは、ウェブブラウザに入力したユーザー名とパスワードを使用して練るLDAP サーバーへ (これは LDAP サーバーにログインするという意味の LDAP 用語です)。バインドが成功すると、ユーザー名とパスワードが正しく、Web サイトにログインできます。ただし、LDAP サーバーがこの種の操作を許可するように構成されている必要がありますが、常にそうであるとは限りません。
  • 2 番目の方法は、最初の方法が許可されていない場合でも機能します。この方法では、LDAP クライアント (nginxこの場合は) は、他のユーザーを検証できるユーザーとして LDAP サーバーにバインドし、Web ブラウザーで提供されるデータを使用してユーザーを検証し、レポートを返します。これを行うには、どのユーザー (識別名またはDNLDAP 用語で)、およびこのバインドに使用するパスワードを指定します。これらは、パラメータと で構成さbinddnbinddn_passwdますnginx

答え2

このgithubに基づいてページ. 「binddn」は LDAP サーバーにログインするユーザー名で、binddn_passwd はパスワードのようです。一部のバインド サーバーでは、接続に情報を公開する前にログインが必要です。

答え3

LDAP サーバーは、ユーザーを認証するために識別ユーザー名 (cn=Test User,ou=something,dc=example,dc=org など) を必要とします。しかし、ほとんどの場合、ユーザーは単に「Test user」としてログインすることを好みます。したがって、ユーザー レコードの識別名を取得するには、クライアント (nginx) は LDAP サーバーに接続し、ユーザー ログイン属性 (この場合は sAMAccountName) がユーザー名に等しいレコードを見つける必要があります。サーバーが匿名ユーザーの接続とそのような検索を許可している場合、binddn と binddn_password は必要ありませんが、サーバーがセキュリティ保護されている場合は、検索を行うために資格情報を提供する必要があります。

ユーザー DN が取得された後 (検索クエリが結果を返した場合)、クライアントはユーザー DN とユーザー パスワードを使用して LDAP サーバーにバインド (認証) します。成功した場合、ユーザーは認証されます。

関連情報