10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

sidekiqの管理画面にアクセス時、Basic認証をつける

Posted at

##はじめに

僕はRailsで非同期実行の機能を実装するときいつもSidekiqを使っています。
Sidekiqには管理画面があり、routes.rbに以下のコードを記述すると実装できます。

config/routes.rb
   require 'sidekiq/web'
   mount Sidekiq::Web, at: "/sidekiq"

http://localhost:3000/sidekiqにアクセスすると、管理画面に飛ぶことができます。
スクリーンショット 2019-06-21 12.41.01.jpg
スタイリッシュでおしゃれなデザインですね!

##管理画面にBasic認証を入れる

ただこのままデプロイすると誰でも/sidekiqの管理画面を見ることができてしまいます。
管理画面にはBasic認証がつけられるので、config/initializers/sidekiq_password.rbを作成し、
以下のコードを記述しましょう。

config/initializers/sidekiq_password.rb
  require 'sidekiq'
  require 'sidekiq/web'

  #Basic認証時のユーザー名とパスワードを設定する
  Sidekiq::Web.use(Rack::Auth::Basic) do |user, password|
    [user, password] == [ENV['SIDEKIQ_USER'], ENV['SIDEKIQ_PASSWORD']] #環境変数にて設定
  end

ユーザー名とパスワードは環境変数を使って設定するようにしましょう。
/sidekiqへアクセス時、Basic認証を使うよう、routes.rbを以下のように変更します。

config/routes.rb
  require 'sidekiq/web'
  authenticate :user do #authenticate
    mount Sidekiq::Web => '/sidekiq'
  end

認証機能を追加するGemのclearanceを利用して認証することもできるそうです。
https://github.com/mperham/sidekiq/wiki/Monitoring#user-content-clearance

さて、これでhttp://localhost:3000/sidekiqへアクセスすると
(※ローカルサーバーを立ち上げ直すことを忘れないでください。)
スクリーンショット 2019-06-21 13.23.14.jpg

しっかりBasic認証の画面が表示されるようになってます!

SidekiqをRailsで利用される際は、セキュリティ対策にもBasic認証を管理画面に入れることをオススメします。

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?