小規模なJenkinsの認証の話です。
Basic認証とReverse Proxy Authプラグイン
すでにhtpasswd
/htdigest
ファイルがあってそれを再利用したい場合、Basic認証をかませてReverse Proxy Authプラグインを使うのが普通だと思います。
ただ、Basic認証はポップアップが若干ウザいという問題があります(機能はWebフォームと変わりないはずなのに不思議です)。
Script Security Realmプラグイン
最近、Script Security Realmというプラグインのことを知りました。これは認証DBの代わりにカスタムのコマンドを使えるというものです。
ここに「htpasswd
ファイルを読んで一致するか確かめる」という内容のスクリプトを設定すれば、JenkinsのWebフォームでログインができ、Basic認証のポップアップなしですませることができます。
グループの方は使わないのでどうしようか迷ったのですが、/bin/true
を入れておけば大丈夫でした。
htpasswd用
設定
/bin/sh -c '/usr/bin/htpasswd -vb /var/www/.htpasswd "$U" "$P"'
htdigest用
htdigestは-v
がないのでrubyを使います。
設定
/usr/bin/ruby -rwebrick/httpauth/htdigest -e 'D = WEBrick::HTTPAuth::Htdigest.new(ARGV[0]); D.get_passwd(ARGV[1], ENV["U"], false) == D.make_passwd(ARGV[1], ENV["U"], ENV["P"]) or abort' /var/www/.htdigest realm