WebDAVの認証をOpenLDAPで行う

まだ完全ではないけれど、一応LDAP認証でログインできたので忘れないうちにメモ。

ちなみにOSはUbuntu22.04。

まずはLDAPのインストール。ついでにコマンドラインのクライアントも。それにしてもなかなかブラックなコマンド名だこと。

sudo apt install slapd ldap-utils cadaver

次にWebDAV用のフォルダを作成

sudo mkdir /webdav
sudo chown -R www-data:www-data /webdav

WebDAV用の設定ファイルを作る

cd /etc/apache2/sites-available
sudo vim webdav.conf

その中身は以下のよう。

Alias /webdav /webdav
<Location /webdav>
    DAV On
    #SSLRequireSSL
    Options None
    AuthType Basic
    AuthName WebDAV
    AuthBasicProvider ldap
    AuthLDAPURL ldap://localhost/dc=example,dc=com?uid
    #Require ldap-filter objectClass=posixAccount
    #AuthUserFile /etc/httpd/conf/.htpasswd
    <RequireAny>
        Require method GET POST OPTIONS
        Require valid-user
    </RequireAny>
</Location>


さらにモジュールやサイトの設定を有効化し、

sudo a2enmod dav
sudo a2enmod dav_fs
sudo a2enmod authnz_ldap
sudo a2ensite webdav

Apache2を再起動する。

sudo service apache2 restart


これでcadaverでアクセスしてみる。

cadaver http://localhost/webdav

上記にはないけれど、無事OpenLDAPで設定したアカウントでログインできた。逆にパスワードが違うとちゃんとはねられた。


ちなみに肝腎なOpenLDAPの方の設定方法はまたいずれ。というかまだまだ理解できていない。