node.jsでpamauthする(unix系)
node.jsでpamを使った認証機構を作る時のサンプルです、Mac・Linuxで動きます。
ditesh/node-unixlibを使います。
unixlib.pamauth 'chkpasswd', ...
ここのchkpasswd
には/etc/pam.d
以下にあるサービス名を入れます。
Ubuntuではpasswd
、MacOSXではchkpasswd
で期待する効果を得られました。
認証ポリシーを変更したり、適当なポリシーが他にある場合はそちらを利用してください。
本当なら自分で定義するべきなんでしょうけど、いまいち自信が無かったので既存のポリシーを利用しました。
ちなみに、MacOSXではpasswd
の時、常にtrue
が返って来ました。
auth required pam_permit.so account required pam_opendirectory.so password required pam_opendirectory.so session required pam_permit.so
まぁ当然でした。