Debian 11 Bullseye
Sponsored Link

Apache2 : Basic 認証 + LDAP
2021/09/07
 
mod_ldap をインストールして、Basic 認証の際に、LDAP ディレクトリーのユーザーで認証できるよう設定します。
当例では以下のような環境の Active Directory を使用します。
ドメインサーバー : Windows Server 2019
ドメイン名 : srv.world
ホスト名 : fd3s.srv.world
NetBIOS 名 : FD3S01
レルム : SRV.WORLD
[1]
Basic 認証の際のパスワードは平文で送信されるため、事前に SSL/TLS の設定を実施しておきます
[2]
Active Directory 側に、Apache2 からの接続用の AD ユーザーを作成しておきます。
当例では [ldapuser] で進めます。権限は通常の [Domain Users] のみで OK です。
[3] Basic 認証 + LDAP の設定です。
例として [/var/www/html/auth-ldap] ディレクトリーを認証対象として設定します。
root@www:~#
vi /etc/apache2/sites-available/auth_ldap.conf
# 新規作成

# 下例では ベース DN から [LDAPUsers] OU 配下に検索範囲を限定

# よって、下例の場合、認証可能な AD ユーザーは [LDAPUsers] OU 配下に登録されたユーザーのみ

# [AuthLDAPBindDN], [AuthLDAPBindPassword] は事前に作成した接続用 AD ユーザーを指定

<Directory "/var/www/html/auth-ldap">
    SSLRequireSSL
    AuthType Basic
    AuthName "LDAP Authentication"
    AuthBasicProvider ldap
    AuthLDAPURL "ldap://fd3s.srv.world:389/ou=LDAPUsers,dc=srv,dc=world?sAMAccountName?sub?(objectClass=*)"
    AuthLDAPBindDN ldapuser@srv.world
    AuthLDAPBindPassword Password
    Require valid-user
</Directory>

root@www:~#
chgrp www-data /etc/apache2/sites-available/auth_ldap.conf

root@www:~#
chmod 640 /etc/apache2/sites-available/auth_ldap.conf
root@www:~#
a2enmod ldap authnz_ldap

Enabling module ldap.
Enabling module authnz_ldap.
To activate the new configuration, you need to run:
  systemctl restart apache2

root@www:~#
a2ensite auth_ldap

Enabling site auth_ldap.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@www:~#
systemctl restart apache2

# テストページ作成

root@www:~#
mkdir /var/www/html/auth-ldap

root@www:~#
vi /var/www/html/auth-ldap/index.html
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Test Page for LDAP Authentication
</div>
</body>
</html>
[4] 任意のクライアントコンピューターで Web ブラウザーを起動し、作成したテストページにアクセスします。すると設定通り認証を求められますので、AD のユーザーで認証します。
[5] 正常に認証が成功して、テストページが表示されれば OK です。
関連コンテンツ