Redmineの二要素認証とは?ブラウザ拡張機能で認証する方法や管理者設定を解説

Redmineでは二要素認証を設定することで、ログイン時にワンタイムパスワードの入力を必須として、セキュリティを強化できます。本記事では二要素認証の設定方法やブラウザの拡張機能での認証方法、管理者の設定について解説します。

Redmineの二要素認証とは?

二要素認証(2FA: Two-Factor Authentication)とは、アカウントのセキュリティを強化するために二つの異なる認証要素を使用する方法です。一般的には、パスワードに加えて、スマートフォンのアプリや、SMSで送られるコードなどを用います。

Redmineでは、バージョン4.1.0以降であれば、ワンタイムパスワードによる二要素認証機能が標準搭載されています。ワンタイムパスワードは、事前に登録したスマートフォン用認証アプリやPCソフトなどで取得します。下の図は、ログインIDとパスワードの入力後に、二要素認証の認証コードの入力を求める画面です。

Redmineの二要素認証画面

二要素認証の設定手順

認証アプリの準備

二要素認証を利用する各ユーザーで、認証アプリをインストールしておきます。TOTP(時刻同期式ワンタイムパスワード)に対応した認証アプリを利用できます。スマートフォンで認証したい場合は、Google認証システム(Android | iPhone)やMicrosoft Authenticator(Android | iPhone)など、PCで認証したい場合は、Google Chromeの拡張機能であるAuthenticatorなどが利用できます。

本記事では、PCで認証する場合を想定して、Authenticatorを利用した手順を紹介します。ブラウザはGoogle Chromeを利用します。

Redmineの個人設定から二要素認証の設定

二要素認証で利用する認証アプリの登録はユーザー自身のみが行えます。各ユーザーがRedmine画面右上の「個人設定」より、「二要素認証を有効にする」をクリックします。※「個人設定」の箇所は利用中のテーマにより異なります。

Redmineの個人設定画面

「二要素認証の有効化」画面が表示されるので、ブラウザの画面右上の拡張機能のアイコンより、拡張機能の一覧を表示し、「Authenticator」をクリックします。

Googleの拡張機能Authenticatorの起動

Authenticatorの右上の「QRコードをスキャン」のボタンをクリックします。

Googleの拡張機能AuthenticatorのQRコードをスキャンボタン

Redmineの画面に表示されているQRコードを範囲を指定して読み取ります。

AuthenticatorによるQAコードの読み込み

ブラウザのポップアップに「○○(ログインID)追加されました。」と表示されるので、「OK」をクリックします。

Redmineの二要素認証の有効化画面

再度ブラウザの画面右上の拡張機能のアイコンよりAuthenticatorを起動し、表示されているワンタイムパスワードをコピーして、Redmineの「コード」に貼り付けた後、「有効にする」をクリックします。※複数のアプリでAuthenticatorを利用している場合は、WebサイトのURLおよびログインIDを確認し、適切なコードを選択します。

Redmineの二要素認証の有効化画面

「二要素認証が有効になりました。」と表示されたら、設定完了です。

Redmineの個人設定画面

認証アプリが使えなくなる場合などに備えて、バックアップコードの生成もしておくと安心です。

二要素認証を利用したログインの手順

まずは、ログインIDとパスワードを入力し、「ログイン」をクリックします。

Redmineのログイン画面

二要素認証が求められるので、Authenticatorを起動し適切なコードをコピーして「コード」に貼り付けて「ログイン」をクリックします。

Redmineの二要素認証画面

Redmineのホーム画面が表示されればログイン完了です。

認証アプリが利用できない場合等に備えたバックアップコードの生成

バックアップコードは、認証アプリが何らかの理由で利用できないときなどにワンタイムパスワードの代わりとして利用できます。二要素認証が求められている画面でワンタイムパスワードの代わりにバックアップコードを入力してログインできます。

バックアップコードの生成は、「個人設定」の「バックアップコードの生成」より行います。

Redmineの個人設定画面

「バックアップコードの生成」画面が表示され、二要素認証の認証コードの入力が求められるので、Authenticatorを起動して「コード」にワンタイムパスワードを入力します。

Redmineのバックアップコードの生成画面

「バックアップコードを生成しました。」と表示され、12桁のコード(4桁×3セットで1コード)が10個表示されます。生成したバックアップコードは、安全な場所に保管して、認証アプリが使えなくなる場合などに備えてください。

Redmineのバックアップコードの生成

バックアップコードに関する注意点
  • 各コードは1回しか使用できません。
  • バックアップコードを生成済みの状態で再度生成を行なった場合、前回生成したコードは全て無効になります。

認証アプリが利用できなくなった場合等に行う二要素認証の再設定

スマートフォンの故障や紛失、機種変更などにより、認証アプリが利用できなくなった場合や、新しい認証アプリを利用する場合は、Redmine上で二要素認証の再設定を行う必要があります。二要素認証の再設定は、一度二要素認証を無効化してから再度有効化する流れで行います。無効化は、ユーザー自身が行うか、システム管理者が行います。

ユーザー自身が二要素認証を無効化する手順

ユーザー自身が二要素認証を無効化する場合、既に設定している認証アプリのワンタイムパスワードの入力が求められるため、主に認証アプリを変更する場合等、設定済みの認証アプリがまだ使える場合のみに有効な手順です。

個人設定」より、二要素認証の項目で「無効化」をクリックします。

Redmineの個人設定画面

二要素認証の認証コードの入力が求められるので、Authenticatorを起動してワンタイムパスワードを入力し、「無効化」をクリックします。

Redmineの二要素認証の無効化

システム管理者が二要素認証を無効化する手順

システム管理者は、特定のユーザーの二要素認証を無効化できます。既にスマートフォンの故障や紛失などの理由で認証アプリが利用できない場合は、システム管理者に無効化を依頼します。

システム管理者は、管理」>「ユーザー」より二要素認証を無効化したいユーザーのログインIDをクリックし、二要素認証の項目で「無効化」をクリックします。

Redmineの二要素認証を無効化

二要素認証を再度有効化する手順

個人設定から二要素認証の設定を行います。こちらの手順を参考にしてください。※システム管理者により二要素認証が必須に設定されている場合、ユーザーがログインした時に二要素認証を有効化する画面が表示されるので、手順に従って設定してください。

システム管理者が二要素認証を必須とする設定

すべてのユーザーに対する設定

システム管理者は、「管理」>「設定」>「認証」タブの「二要素認証」の設定で、すべてのユーザーに対して二要素認証を必須に設定できます。

Redmineのシステム管理者は、「管理」→「設定」→「認証」タブ

この設定の選択肢は4つあり、それぞれ下記の通りです。

  • 必須
    • すべてのユーザーに対して二要素認証の有効化を次回ログイン時に要求します。ユーザーは二要素認証の設定を行うまでログインできなくなります。
    • ログインIDとパスワードの入力後に、下の図のように、「システム管理者が二要素認証を有効にすることを求めています。」というメッセージが表示されます。各ユーザーは、画面の指示に従って二要素認証を設定します。(詳しい設定手順はこちら。)
      Redmineの二要素認証の有効化画面
  • システム管理者のみ必須
    • システム管理者であるユーザーに対して、二要素認証の有効化を次回ログイン時に要求します。そのほかのユーザーに対しては 任意 に設定した場合と同じ動作です。
  • 任意
    • 各ユーザーが必要に応じて「個人設定」画面から二要素認証を有効化できます。
  • 無効
    • 全ユーザーの二要素認証を無効にし認証デバイスの関連づけも解除します。

グループごとの設定(Redmine 5.0以降 )

Redmine 5.0以降の場合、グループ(複数のユーザーを部署やチームなどで束ねる概念)ごとに二要素認証を必須にする設定ができます。システム管理者が「管理」>「グループ」から設定します。重要な権限を持つグループには二要素認証を必須にするなどの対応ができます。

Redmineのグループ画面

なお、Redmineの有償プラグインであるLychee Redmineのビジネスプランに含まれる「Lycheeグループ」機能を使うと、下の図のようにグループを組織図のように階層化できますが、上位のグループで「二要素認証必須」を有効化しても、下位のグループに設定は引き継がれません。下の図の例では「ソフトウェア開発部」で二要素認証必須にしても、「第一ソフトウェア開発課」と「第二ソフトウェア開発課」に設定は引き継がれないため、それぞれのサブグループで設定する必要があります。

Redmineのグループ画面

参考ページ

本記事は、一部以下のページを参考にして作成しています。

Lychee Redmine無料トライアル