Gitlab, AsakusaSatellite などの開発者向け Rails アプリを Redmine で OAuth 認証するための Omniauth プラグイン作った
Redmine・Gitlab・Jenkins のログインパスワードの管理が大変になったので OAuth 化した - すえひろがりっっっっ! で Redmine を OAuth プロバイダにできました。
Rails 製のクライアントアプリケーション側は Omniauth Strategy を都度 initializers 以下に設置するようにしていましたが、各アプリケーションに対して同じような作業をするのは DRY じゃないのでライブラリ化しました。
omniauth-redmine https://github.com/suer/omniauth-redmine
セットアップ
Gemfile に以下を追記します。
gem 'omniauth-redmine', :github => 'suer/omniauth-redmine'
設定
devise を利用している場合は RAILS_ROOT/config/initializers/devise.rb に
config.omniauth :redmine, "consumer key", "consumer secret", :redmine_base_url => "http://redmine.base.url/"
のように追記します。 :redmine_base_url オプションは必須項目です。
omniauth を生で扱ってる場合は RAILS_ROOT/config/initializers/omniauth.rb として以下の内容を記述します。
Rails.application.config.middleware.use OmniAuth::Builder do provider :redmine, "consumer key", "consumer secret", :redmine_base_url => "http://redmine.base.url/" end