Nginx PAMモジュール を使用して、FreeBSDシステムの既存のユーザーでサイトを認証したいと思います。 pam_unix.soを使用しようとしましたが、うまくいきませんでした。私のusr/pswペアを使用することはできません。 :(
nginx conf:
location / {
root html;
auth_pam "Secure Zone";
auth_pam_service_name "nginx";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
}
/usr/local/etc/pam.d
ディレクトリのnginxファイル:
auth required pam_unix.so
account required pam_unix.so
誰かが私に動作する構成を教えてくれれば幸いです。 :)
あなたがすでにこれを試したかどうかはわかりませんが、私はここで気づきました:
モジュールはWebサーバーユーザーとして実行されるため、使用されるPAMモジュールはrootになることなくユーザーを認証できる必要があります。つまり、pam_unix.soモジュールを使用してユーザーを自動化したい場合は、Webサーバーのユーザーが/ etc/shadowファイルを読まなくてはならないことになります(Debianのようなシステムでは、www-dataを追加できます)シャドウグループへのユーザー)。
Nginx HTTP Auth PAMモジュールREADME
Pam_unix.soを使用していないため、設定を確認できません。
非常に古い質問に答えますが、これが機能することを確認できたので、これが役立つかもしれません。これにより、nginxの場所をローカルサーバーのアカウント名に対して認証できます。 YMMV。
nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
/etc/pam.d/nginx
を作成し、次の行を追加します。
@include common-auth
Nginx設定内:
location /secure {
auth_pam "Secure zone";
auth_pam_service_name "nginx";
}
そして魔法のソースは:
Sudo usermod -aG shadow www-data
Nginx.confで、user www-data
で使用されているアカウントを確認してください。時にはnobody
に設定できます。
Nginxとbingoを再起動してください!
このソリューションを完了するのに役立つ上記の回答に感謝