日記はScrapboxに移動しました。

libpam-mrubyによりmrubyでLinuxのログイン認証をする

しばらく前に、趣味コーディングの題材としてだいたい動きそうに思えるところまで書いてあった、mrubyでPAMな認証処理を書けるようにするlibpam-mrubyというのがあったのですが、その後手をつけられずにいたところ、udzuraさんがいい感じにしてくれていた。

github.com
qiita.com

詳しくは、上記のudzuraさんのエントリをご覧くださいという感じなのですが、ここでも少し書いておきます。

PAMの設定にこんなのを追加しておく(UNIXアカウント認証をするモジュール(pam_unix.so)の前とかに)。

auth sufficient pam_mruby.so rbfile=/path/to/auth.rb

んでもって、一番簡単な認証としては、こんな感じ(もちろん実用的ではありません)。

def authenticate(username, password)
if username == 'kentaro' && password == 'p@ssw0rd'
true
else
false
end
end

authenticate(username, password) というメソッドを定義しておくと、それが呼ばれます(この辺はあとで変えるかも)。

この例だとなにがうれしいのかわからないかもしれませんが、実用的な応用としては、外部のアカウントや権限管理サービスをmrubyから叩いて、その結果を元に認証するとかですかね。

どうぞご利用ください。

Leave a Reply

Your email address will not be published.