Ubuntu18.04のapache2.4でActiveDirectory認証
エンタメ系企業の社内もろもろを担当している、最近チックチックチックのある曲にどはまり中のakibinです。
やってみたこと
ローカル端末のVMに起てたUbuntuのApacheの特定ディレクトリにアクセスした際にBasic認証を発生させ、認証をActiveDirectoryのユーザで実施する。
AD環境は別途作成済み、またApacheは既にインストール済みとする
作業内容
1.ApaheでLDAP認証に必要なモジュールを有効化
以下実行で必要なモジュール(authnz_ldap.load, ldap.conf, ldap.load)を有効化
User@Local-VirtualBox:~$ sudo a2enmod ldap authnz_ldap
有効化されているか確認
User@Local-VirtualBox:~$ ls /etc/apache2/mods-enabled/
# ここに追加されていればOK
access_compat.load authnz_ldap.load deflate.conf ldap.conf negotiation.conf status.conf
alias.conf authz_core.load deflate.load ldap.load negotiation.load status.load
alias.load authz_host.load dir.conf mime.conf reqtimeout.conf
auth_basic.load authz_user.load dir.load mime.load reqtimeout.load
authn_core.load autoindex.conf env.load mpm_event.conf setenvif.conf
authn_file.load autoindex.load filter.load mpm_event.load setenvif.load
2.Apaheのデフォルトの設定ファイル(000-default.conf)をコピー(バックアップ)
000-default.confをコピーしてauth-ad.confというファイルを作成
User@Local-VirtualBox:~$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/auth-ad.conf
auth-ad.confが作成されているか確認
User@Local-VirtualBox:~$ ls /etc/apache2/sites-available/
000-default.conf auth-ad.conf default-ssl.conf
3.作成した設定ファイル(auth-ad.conf)にAD認証用の設定を追記
前提条件: ※こちらの内容を自身の環境に置き換えてください
・認証対象のディレクトリ: /var/www/html/himitu
・ADサーバ: test-ad.hoge.co.jp
・Basic認証を許可するou: testou
・ADへアクセス時に認証するユーザ: admin
・ADへアクセス時に認証するユーザもパスワード: adminpw
User@Local-VirtualBox:~$ sudo vi /etc/apache2/sites-available/auth-ad.conf
# 以下を追記
<Directory "/var/www/html/himitu">
AuthName "User/Password"
AuthType Basic
AuthBasicProvider ldap
# AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://test-ad.hoge.co.jp:389/ou=testou,dc=test-ad,dc=hoge,dc=co,dc=jp?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "cn=admin,dc=test-ad,dc=hoge,dc=co,dc=jp"
AuthLDAPBindPassword "adminpw"
require valid-user
</Directory>
AuthzLDAPAuthoritativeで、LDAP認証で失敗した場合に他の認証サービスに移るかどうかを指定可能ですが、2.2(?)あたりからバグでエラーになるので削除(ここではコメントアウト)。こちらの記事を参照させていただきました!
AuthLDAPURLのsAMAccountNameについて、Linux+OpenLDAPで運用されているLDAPサーバーの場合は、アカウント名を示す属性はuidなのですが、ADのLDAPディレクトリの場合にはこの属性はありません。
ADで同様な意味を持つ属性は、sAMAccountName。こちらの記事を参照させていただきました!
ちなみにメールアドレスの属性はmailでした。(そのまんま)
4.デフォルトの設定ファイルを無効化、新しい設定ファイルを有効化
# デフォルトの設定ファイルを無効化
User@Local-VirtualBox:~$ cd /etc/apache2/sites-available
User@Local-VirtualBox:/etc/apache2/sites-available$ sudo a2dissite 000-default.conf
# 新しい設定ファイルを有効化
User@Local-VirtualBox:/etc/apache2/sites-available$ sudo a2ensite auth-ad.conf
# 有効化の状況確認
User@Local-VirtualBox:/etc/apache2/sites-available$ cd ../
User@Local-VirtualBox:/etc/apache2$ ls sites-enabled/
auth-ad.conf
5.Apache再起動
User@Local-VirtualBox:/etc/apache2$ sudo /etc/init.d/apache2 reload
6.動作検証
該当のディレクトリ(himituディレクトリ。VMのIPは192.168.57.111)へブラウザからアクセスしてみると…
ベーシック認証画面が表示され、ADの認証用のOU(testou)の中のユーザのIDとパスワードを入れると…
認証が通り、テストページが表示されました!
設定ファイルのAuthLDAPURLの書き方がなかなかわからず、苦戦しました…疲れたのでおやつでも食べようと思います。
****************************************
◆ Twitterアカウント
@AkibinMusic
◆ Youtubeチャンネル
https://www.youtube.com/channel/UC-JOpwEnJn3gCrUA4NdCYgg
Author And Source
この問題について(Ubuntu18.04のapache2.4でActiveDirectory認証), 我々は、より多くの情報をここで見つけました https://qiita.com/akibin/items/4c0dad009b0928b1438c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .