openSUSE Leap 16

Apache httpd : Basic 認証 + LDAP2025/11/13

 

mod_ldap をインストールして、Basic 認証の際に、LDAP ディレクトリーのユーザーで認証できるよう設定します。
当例では以下のような環境の Active Directory を使用します。

ドメインサーバー : Windows Server 2025
ドメイン名 : srv.world
ホスト名 : fd3s.srv.world
NetBIOS 名 : FD3S01
レルム : SRV.WORLD

[1]

Basic 認証の際のパスワードは平文で送信されるため、事前に SSL/TLS の設定を実施しておきます

[2]

こちらを参考に、Active Directory へ LDAPS で接続できるように設定しておきます

[3]

Active Directory 側に、Apache httpd からの接続用の AD ユーザーを作成しておきます。
当例では [ldapuser] で進めます。権限は通常の [Domain Users] のみで OK です。

[4] OpenSSL をインストールしておきます。
www:~ #
zypper -n install openssl-3
[5] Basic 認証 + LDAP の設定です。
例として [/srv/www/htdocs/auth-ldap] ディレクトリーを認証対象として設定します。
# AD の証明書を取得

www:~ #
echo | openssl s_client -connect fd3s.srv.world:636 2>&1 | awk '/BEGIN/,/END/' > /etc/apache2/ssl.crt/fd3s.srv.world.cer
www:~ #
vi /etc/apache2/conf.d/authnz_ldap.conf
# 新規作成
# 下例では ベース DN から [LDAPUsers] OU 配下に検索範囲を限定
# よって、下例の場合、認証可能な AD ユーザーは [LDAPUsers] OU 配下に登録されたユーザーのみ
# [AuthLDAPBindDN], [AuthLDAPBindPassword] は事前に作成した接続用 AD ユーザーを指定

LDAPTrustedMode SSL
LDAPTrustedGlobalCert CA_BASE64 /etc/apache2/ssl.crt/fd3s.srv.world.cer
<Directory "/srv/www/htdocs/auth-ldap">
    SSLRequireSSL
    AuthType Basic
    AuthName "LDAP Authentication"
    AuthBasicProvider ldap
    AuthLDAPURL "ldaps://fd3s.srv.world:636/ou=Hiroshima,dc=srv,dc=world?sAMAccountName?sub?(objectClass=*)"
    AuthLDAPBindDN ldapuser@srv.world
    AuthLDAPBindPassword Password
    Require valid-user
</Directory>

www:~ #
chgrp wwwrun /etc/apache2/conf.d/authnz_ldap.conf

www:~ #
chmod 640 /etc/apache2/conf.d/authnz_ldap.conf

www:~ #
a2enmod ldap

www:~ #
a2enmod authnz_ldap

www:~ #
systemctl restart apache2

# テストページ作成

www:~ #
mkdir /srv/www/htdocs/auth-ldap

www:~ #
vi /srv/www/htdocs/auth-ldap/index.html
<html>
<body>
<h1 style="width: 100%; font-size: 48px; text-align: center;">
Test Page for LDAP Authentication
</h1>
</body>
</html>
[6] SELinux を有効にしている場合は、ポリシーの許可設定が必要です。
www:~ #
setsebool -P httpd_can_network_connect on

www:~ #
setsebool -P httpd_can_connect_ldap on

[7] 任意のクライアントコンピューターで Web ブラウザーを起動し、作成したテストページにアクセスします。すると設定通り認証を求められるので、AD のユーザーで認証します。
[8] 正常に認証が成功して、テストページが表示されれば OK です。
関連コンテンツ