長い間、認証の2番目のステップでは、SMS経由で送信されるワンタイムパスワードを使用していました。 そのような機能は、 redmine_sms_authプラグインを開発した2013年にRedmineに登場しました。 これについては長い記事で書きました。
しかし、時は止まりません。 Telegramを会社のビジネスプロセス(1、2、3)に積極的に導入しています。
この点で、彼らはRedmineのTelegramを介して認証を行うことにしました。 同時に、SMSに関する古いプラグインを書き換えて、Google認証システムのサポートを追加します。
次に、このプラグインをインストール、構成、使用する方法について説明します。
設置
プラグインフォルダーに移動します
cd plugins
リポジトリを複製する
git clone https://github.com/centosadmin/redmine_2fa.git
Redmineのルートに移動します
cd ..
必要な宝石を設定する
bundle install
移行を実施します
rake redmine:plugins:migrate
config/configuration.yml
を追加しconfig/configuration.yml
# specific configuration options for production environment # that overrides the default ones production: redmine_2fa: sms_command: 'echo %{phone} %{password}'
sms_command
に、メッセージの送信先となるシステムコマンドを入力します。
このアプローチは、ほとんどのSMSゲートウェイAPIとの互換性のために使用されます。 ほとんどの場合、次のようなものがあります
/usr/bin/curl "https://sms.ru/api/send?phone=%{phone}&message=code: %{password}"
Redmineを再起動します。
カスタマイズ
前提条件
Telegram WebフックはHTTPSアドレスにのみ送信されるため、Redmineはこのプロトコルを使用するように設定する必要があります。
必須の使用
デフォルトでは無効になっているため、プラグインをインストールした後、「使用しない」を選択してRedmineを入力できます。
ただし、ユーザーの1人のパスワードを見つけたランダムな通行人がログインできないように、有効にすることをお勧めします。
電報のセットアップ
Telegramを介した認証には、別のボットが必要です。 @BotFatherを使用してボットを作成します。 ボットの作成手順 。
設定で受け取ったキーを入力し、[ 適用 ]をクリックします。
ボットの初期化
トークンを保存したら、ボットを初期化する必要があります。
初期化中に、ボット名がシステムにロードされ、初期化ステップでボットへのリンクが表示されます。
Webフックもインストールされます。誰かがボットを書いた場合にAPIからのリクエストが送信されるアドレスです。
以前のプラグインでは、多くの着信トラフィックがあるため、ボットプロセスを使用していました。
彼らはすぐに、システムから余分な要素を除外することにしました。
重要! トークンを変更するときは、ボットを再度初期化する必要があります。
ボットの無効化
この関数は以下の場合に便利です
- このボットを別の場所で使用することにしました
- 何らかの理由で、別のボットに切り替える必要があります。
非アクティブ化のプロセスでは、トークンがリセットされ、プラグインを使用しているすべてのユーザーが非アクティブ化されます。
次回のログイン時に、連絡先に新しいボットを追加する必要があります。
重要! 新しいトークンを入力して保存するときに、ボットをアクティブにすることを忘れないでください。
そして、ユーザーからはどうですか?
最初のエントリー
最初のログイン時に、ユーザーは認証方法の1つを選択するか、2番目の要素の使用を拒否できます。
プラグイン設定で有効にした場合のみ、彼は拒否できます。
電報
/ startコマンドの後、ボットはテレグラムアカウントをRedmineに保存し、Redmineアカウントに関連付けることを提案します
提案されたコマンドを入力してください
そして、私たちはメールで手紙を受け取ります
リンクをクリックすると、メッセージが表示されます

そしてログインフォーム。
ユーザー名とパスワードをもう一度入力する必要があります。
次に、ワンタイムパスワード入力フォームが表示されます
ボットから切望されたコードを取得する
電報のセットアップは最も困難です。 しかし、便宜上、1分間過ごすのは残念ではありません。
Google認証
Google認証は設定が最も簡単です。 アプリケーションでQRコードをスキャンし、「次へ」をクリックします。
SMS
SMSを介してコードを受信するには、まずワンタイムパスワードを使用してSMSを受信する電話番号を確認する必要があります。
古いプラグインからの移行
古いプラグインを使用した場合は、 新しい プラグインに切り替えることをお勧めします。 詳細な移行手順については、 こちらをご覧ください 。
2FAをリセット
ユーザーが認証方法を変更したい場合があります。 彼のページにはこのための特別なリンクがあります。
次回ログイン時に設定をリセットした後、ユーザーは認証方法を選択するよう求められます。
次は?
これで、2要素認証をRedmineに追加する方法がわかりました。 取得した知識を実践する時が来ました。
この出版物へのコメントでプラグインに関する質問に答える準備ができています。
機能の拡張とバグレポートのリクエストは、リポジトリのチケットと同様にここで受け入れられます 。