kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

Invalid AuthExternal keyword pwauth

忘れないように自分用メモ mod_authnz_externalとpwauthでOSユーザーでのBasic認証を設定していた時にハマりました。
下記のエラーが表示されて、何が悪いのかさっぱりわからずでした。

Invalid AuthExternal keyword pwauth

最終的に、http.confに記載していた、AddExternalAuthSetExternalAuthMethodをvirtualhost側に記載するようにしたら出来ました。
ディレクティブの継承関係がうまくいってなかったようです。

httpd.conf

LoadModule php5_module        modules/libphp5.so
LoadModule authnz_external_module /usr/lib64/httpd/modules/mod_authnz_external.so
#AddExternalAuth pwauth /usr/local/libexec/pwauth
#SetExternalAuthMethod pwauth pipe

vhosts.conf

<VirtualHost *>
    ServerName foo.localhost
    DocumentRoot /path/to/webroot
    ErrorLog logs/error_log
    CustomLog logs/access_log combined
    DirectoryIndex index.php
    AddExternalAuth pwauth /usr/local/libexec/pwauth
    SetExternalAuthMethod pwauth pipe
    <Directory /path/to/webroot>
        AllowOverride ALL
        Order deny,allow
        Allow from all
        Options All
        Options All -Indexes
        AddType application/x-httpd-php .php
        AuthType Basic
        AuthName "PAM Authentication"
        AuthBasicProvider external
        AuthExternal pwauth
        require valid-user
    </Directory>
</VirtualHost>