Nextcloudでメールによる二要素認証を追加する

# はじめに
Nextcloud では、ユーザー名/パスワードの認証に加え、別のデバイス等を利用した二要素認証を実装してセキュリティを強化することができます。
ここでは、電子メールを利用した二要素認証の設定追加方法を展開します。

★Google Authenticatorによる二要素認証ついては、こちらの記事を参照ください。
[Qiita - Nextcloud の2段階認証](https://qiita.com/mmisu/items/c183fa38ce8ee30da00b)

# 前提条件
1. 二要素認証のためのパスコードをNextcloudサーバーから送信するために、送信用のメールサーバーが別途必要となります。  
Nextcloudに送信用のメールサーバー設定はすでに行われている前提とします（本記事では説明を省略します）。  
メールサーバー設定方法等が知りたい場合は、以下のページを参照ください。
    * [Nextcloud configuretion - Email](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/email_configuration.html?highlight=mail)
2. 二要素認証のパスコードは、ユーザーの個人情報の `メール` に設定されているメールアドレスに送信されます。このメールアドレス設定もすでに行われている前提とします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/fad066a6-8923-e6f1-43fc-1b99ac750b7b.png)


# 設定手順

## Nexcloud 管理者の設定
※まず、Nextcloud で 電子メールによる二要素認証を行うための追加アプリをインストール / 設定します。

1. Nextcloud に管理者権限をもつアカウントでログインし、アプリ画面を開きます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/a234c4c7-b493-b5bb-91db-1e7adafe1692.png)

2. 右上の虫メガネアイコンをクリックし、 "`Two Factor e-mail provider`" のキーワードを入力すると `Two Factor e-mail provider` アプリが表示されるので、`有効にする`(ダウンロード済みの場合) / `ダウンロードして有効にする`(未ダウンロードの場合) をクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/216b7e93-af1a-80c6-8241-2cfa17a1cd3f.png)

## Nexcloud 利用者の設定
※Nextcloud の二要素認証はユーザーがログインを行った状態でのみ設定可能です。

1. Nextcloud にログインし、設定画面を開く。
2. 「個人」の下にある `セキュリティ` をクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/0459f21d-0d10-111e-baa6-371e73c01fd8.png)
3. 「二要素認証」内の `Email verification` にある `Enable` ボタンをクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/1b316de9-72c9-4076-8419-f8890e64af98.png)
4. このユーザーのメールアドレスに認証メールが送信されるので、メール内の6字のパスコードを確認します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/ec6cdbb7-432c-0e10-4e02-364cf1c58fec.png)
5. このパスコードを入力し、 `Verify` ボタンをクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/ef369b01-e413-de15-93f3-f36b3530be87.png)
6. これで認証設定は完了です。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/dc98bc01-9411-56a2-cd54-f7c9056aeb68.png)


## 二要素認証の動作確認

1. Nextcloudログイン画面を開き、ユーザー名とパスワードを入力します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/a96c24f1-f4d8-4b14-9574-98254380653f.png)
2. メール認証の画面が表示され、同時に初回設定と同様の認証メールが送信されてきます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/7fcee4bc-512f-0f92-227c-b62c95ef2a7d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/fa00fcdb-a67f-4306-27e7-8cbc7957529f.png)
3. メール内の6字のパスコードをNextcloudのメール認証画面に入力し「→」ボタンをクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316764/f6b67e15-5289-03e1-9d52-85734145b5e6.png)
4. 認証が通るとログインが成功します。

# 注意点
この二要素認証の設定は、ユーザーのログイン後にのみ設定が可能であるため、Nextcloud の管理者設定で二要素認証を強制する設定を行った場合に、ログインができなくなります。
二要素認証を強制しつつ電子メールによる二要素認証を行う場合は、初回ログインができるように、事前にバックアップコードをユーザーに展開する等対策が必要です。
【バックアップコードに関する参考ページ】
* [Enforcing two-factor authentication](https://docs.nextcloud.com/server/stable/admin_manual/configuration_user/two_factor-auth.html?highlight=backup%20codes#enforcing-two-factor-authentication)
* [Nextcloud 2FA Admin Support](https://nextcloud-twofactor-admin.readthedocs.io/en/latest/)