認証されたLDAPユーザーを使用してフォルダーへのアクセスを制限しようとしていますが、これはubunbt 14.04のApacheで機能していましたが、今は16.04にしようとしていますが、機能しません。AH1618ユーザーが見つからないというエラーが表示されます。確かにその何か:)
ユーザーはこの「ドメイン」にありますou=Users,dc=ldap,dc=kattronics,dc=com
Webページにアクセスすると、パスワードの入力を求められますが、このエラーが表示されます。
[auth_basic:error] [pid 10821] [client 10.0.5.167:58662] AH01618:ユーザーlasse.knudsenが見つかりません:/
たぶん最後のスラッシュに手掛かりがあります
Apache2のデバッグが有効になっています
AH01694:auth_ldap authenticate:ユーザーlasse.knudsen認証が失敗しました。 URI/[LDAP:ldap_simple_bind()failed] [LDAPサーバーに接続できません](権限なし)
LDAPサーバーに接続できません。困惑します。ホストは解決します。
私を正しい方向に向けることができる人なら誰でも。
Apacheサイト設定からのディレクトリエントリ
<Directory /var/www/html>
AuthName "Restricted - Kattronics Users Only"
AuthType Basic
#Satisfy any
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://dc2-ldap001:636/ou=Users,dc=ldap,dc=kattronics,dc=com?uid"
AuthLDAPBindDN "ou=Users,dc=ldap,dc=kattronics,dc=com"
AuthLDAPBindAuthoritative off
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
#Require valid-user
Require ldap-user # Gives error AH01618
</Directory>
以下の回避策
<IfModule mod_authnz_external.c>
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
</IfModule>
<Directory /var/www/html>
AuthType Basic
AuthName "Login"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Directory>
ほとんどのLDAPサーバーでは、有用なディレクトリ情報を要求する前に、認証が必要です。 LDAPでは、ディレクトリサーバーへの接続が「bind」に呼び出されます。
つまり、Apacheにはユーザー名とパスワードを設定する必要があります。ユーザー名は、それが保存されているディレクトリのフルパスを含む完全な識別名である必要があり、 AuthLDAPBindDN
は次のようになります。
AuthLDAPBindDN "CN=Apache,OU=Service Accounts,DC=example,DC=com"
そしておそらくあなたは AuthLDAPBindPassword
(できれば決して期限切れにならないもの)も必要とします:
AuthLDAPBindPassword y0ur_p@ssw0rd
TLS/SSLで保護されたLDAP接続を使用する場合の2番目の問題は、ApacheがLDAPサーバーが使用するサーバー証明書の信頼性を検証する必要があることです。通常、LDAPサーバーは、よく知られた公開CAの1つが発行した証明書ではなく、内部CAが発行した証明書を使用することを期待しています。 CA証明書をWebサーバーにダウンロードし、 LDAPTrustedGlobalCert
ディレクティブを使用してロードします。
LDAPTrustedGlobalCert type directory-path/filename [password]
または、安全でない回避策として、 LDAPVerifyServerCert
ディレクティブを使用し、サーバー証明書を確認しないでください:
LDAPVerifyServerCert off