Nextcloudで二要素認証(2FA)を設定および適用する方法

Nextcloudユーザーがログインページにアクセスし、正しいパスワードを入力しても、設定していない2要素認証をサーバーが要求するため、ログインできなくなってしまうことがあります。これは通常、管理者がプロバイダーを有効にする前、登録フローをテストする前、ユーザーの復旧準備をする前に、強制的な2要素認証(2FA)を有効にした場合に発生します。より安全な解決策は、まずサポートされているプロバイダーを有効にし、少数のグループで試験運用を行い、その後、対象となるアカウントにのみ2FAを適用することです。

以下の手順は、2026年10月6日に公開されたNextcloud 35安定版の管理マニュアルおよびユーザーマニュアルに基づいています。Nextcloudのインターフェースと利用可能なプロバイダーアプリは、サーバーのリリースやデプロイメントによって異なる場合があるため、本番環境のインスタンスを変更する前に、インストールされているバージョンのドキュメントを確認してください。

2段階認証を有効にすると、なぜログインに問題が発生するのですか?

Nextcloudでは、2要素認証はプラグイン可能な機能として扱われます。管理者は1つ以上のプロバイダーアプリを有効にし、ユーザーは個人設定で認証要素を設定します。ただし、管理者が必須要件を強制している場合は除きます。利用可能なプロバイダーがないポリシー、未登録のユーザー、または認証アプリの紛失は、サインインを中断させる可能性があります。リカバリーコードとテスト済みの管理者によるリカバリー手順により、このリスクを軽減できます。

2要素認証の強制適用は、Nextcloudに接続するアプリケーションにも影響します。Nextcloud 35では、2要素認証を完了できないクライアントアプリケーションには、デバイス固有のアプリパスワードが必要になります。展開前に、デスクトップ同期クライアント、モバイルアプリ、および各種連携機能について計画を立ててください。

1. 2段階認証を使用する必要があるユーザーを選択する

まず、ポリシーをNextcloudグループにマッピングします。ルールを全員に適用するか、特定の部署に適用するか、あるいは少数のサービスアカウントを除くすべてのユーザーに適用するかを決定します。対象となるアカウントが、実際に意図したグループに属していることを確認してください。広範囲にわたる除外は避けてください。除外されたアカウントは、適用されたアカウントと同じログイン保護を受けられません。

Nextcloud のグループロジックは重要です。適用対象としてグループが選択されていない場合、ルールは除外グループのメンバーを除くすべてのユーザーに適用されます。グループを選択した場合、ルールはそのグループのメンバーに適用されます。ユーザーが除外グループにも属している場合は、選択したグループへの所属が優先されます。例外を含むポリシーを保存する前に、Nextcloud 35 の公式二要素認証ドキュメントでこれらのルールを確認してください。

2. 少なくとも1つのプロバイダーを有効にして、登録テストを実施する。

管理者アカウントで「アプリ」を開き、無効になっているアプリの中から「Two-Factor TOTP Provider」などのプロバイダーを探してください。Nextcloud 35 のマニュアルによると、TOTP はインストールされているものの、デフォルトでは無効になっている場合があります。また、通知ベースのプロバイダーを有効にする必要がある場合もあります。アカウント復旧には、組み込みのバックアップコードプロバイダーが利用できます。Nextcloud App Store では他のプロバイダーアプリも提供されていますが、アプリを使用する前に、インストールされているサーバーバージョンに対応していることを確認してください。

小規模なパイロットテストでは、TOTPを有効にし、テストユーザーに個人設定を開いて「二段階認証」を探し、表示されたQRコードを互換性のある認証アプリでスキャンして登録を確認するよう依頼してください。このテストは、安全にリセットできるアカウントで行ってください。テスト中は、管理者セッションを別途開いたままにしておいてください。通常のユーザーと管理者の両方が二段階認証で新規ログインを完了するまでは、インスタンス全体にこのルールを適用しないでください。

ユーザーは、個人の二段階認証設定からワンタイムバックアップコードを生成し、ログインに使用する電話やセキュリティキーとは別に保管する必要があります。Nextcloudの公式二段階認証ユーザーガイドでは、TOTPの設定、リカバリーコード、ログインプロンプト、デバイス固有のパスワードについて説明しています。

3. 管理設定で要件を適用する

パイロットがサインインしてアクセスを回復できるようになったら、管理設定 > セキュリティを開き、二要素認証セクションを探します。強制設定を有効にします。一部のユーザーのみを含める場合は、手順 1 で選択したグループを選択し、除外グループのリストを注意深く確認してください。全員に 2FA を要求する場合は、選択グループの制限を空欄のままにします。除外は、特定の運用上の理由と代替のセキュリティ対策がある場合にのみ使用してください。

ポリシーの発効日、設定すべきプロバイダ、バックアップコードの生成場所、およびヘルプの依頼方法をユーザーに通知してください。大規模な展開の場合は、サーバー全体を一度に切り替えるのではなく、グループごとに展開を段階的に進めてください。そうすることで、管理者はグループメンバーシップの欠落、サポート対象外のクライアント、プロバイダ固有の問題などが全員に影響する前に発見できます。

4. 繰り返し実行可能なサーバー側の変更が必要な場合は、occ を使用してください。

管理者は、Nextcloud のoccコマンドを使用して 2FA を強制することもできます。このコマンドは、Nextcloud のインストールディレクトリからウェブサーバーアカウントとして実行します。アカウント名、PHP コマンド、およびインストールパスは、ホストまたはコンテナによって異なります。以下の例では、www-dataNextcloud マニュアルに示されている一般的な Linux ウェブユーザーを使用しています。

sudo -E -u www-data php occ twofactorauth:enforce --on

選択したグループに対して2要素認証を必須とし、サービスアカウントグループを除外する場合は、以下を使用します。

sudo -E -u www-data php occ twofactorauth:enforce --on \
  --group=staff --group=admins --exclude=service-accounts

これらの例のグループIDとWebサーバーアカウントを、ご使用のインスタンスの値に置き換えてください。ロールアウトを一時停止する必要がある場合は、このコマンドで強制適用を無効にすることができます。

sudo -E -u www-data php occ twofactorauth:enforce --off

ご使用のリリースにおける構文を確認するには、最新のNextcloud occリファレンスをocc参照してください。Dockerなどのマネージドデプロイメントの場合は、そのデプロイメントのドキュメントに記載されているユーザーとコマンドを使用して、適切なアプリケーション環境内で実行してください。ホストレベルの例をそのまま実行しないでください。

5. デバイスとクライアントアプリの紛失に備える

ユーザーが認証情報が格納されている電話や鍵を紛失し、さらにバックアップコードも紛失した場合、ログインできなくなる可能性があります。強制適用する前に、重要度の低いアカウントで復旧手順をテストしてください。Nextcloud は、プロバイダがサポートしている場合にプロバイダ固有のコマンドを提供しますがocc twofactorauth:disable、twofactorauth:enableすべてのプロバイダがユーザーごとの変更をサポートしているわけではありません。サポートされている Nextcloud バージョンでは、Two-Factor Admin Support アプリも復旧オプションとして利用できます。利用する前に、互換性とインストール状況を確認してください。

移行計画を立てずに、ユーザーが既に設定済みのプロバイダを無効化または削除しないでください。Nextcloud はアプリが削除された後もプロバイダの関連付けを保持することがあり、認証エラーの原因となる可能性があります。管理マニュアルには、完全に削除されたプロバイダのクリーンアップコマンドが記載されています。このクリーンアップは元に戻せないため、そのプロバイダを再度有効にする予定がない場合にのみ使用してください。

対話型の2要素認証プロンプトに応答できないデスクトップおよびモバイルクライアントについては、ユーザーにNextcloudアカウント設定からアプリパスワードを作成してもらい、クライアント認証情報を更新してください。Nextcloud 35のドキュメントには、2要素認証が有効になっているアカウントではアプリパスワードが必須であると記載されています。ブラウザログインテストだけでは、同期クライアントと統合が正常に動作しているかどうかは確認できません。

執行が機能していることを確認する

プライベートブラウザーウィンドウでパイロットユーザーを使用してテストするか、サインアウト後にテストしてください。通常のユーザー名とパスワードを入力し、Nextcloudが設定済みの2要素認証を要求し、有効なコードを受け入れることを確認します。復旧手順で許可されている場合は、バックアップコードを一度テストしてください。バックアップコードは1回のみ使用できることに注意してください。次に、組織が依存しているクライアントアプリと統合をテストします。

特定のアカウントについては、Nextcloudディレクトリからstatusコマンドを実行してください。

sudo -E -u www-data php occ twofactorauth:state username

アカウントが意図した適用ポリシーの対象であり、選択したプロバイダーが有効であることを確認してください。選択したユーザーに2要素認証(2FA)の使用が義務付けられていない場合は、グローバルルールを変更する前に、グループメンバーシップと除外設定を確認してください。設定は、意図したユーザーがログイン時に認証を求められ、除外されたアカウントが文書化された例外に限定され、復旧テストが完了し、サポートされているクライアントがアプリのパスワードで再接続できるようになった時点で完了です。

公式資料

コメントを残す

PythonとSimple-Matrix-Bot-Libを使用してMatrix Botをセットアップする方法

PythonとSimple-Matrix-Bot-Libを使用してMatrix Botをセットアップする方法

PythonとSimple-Matrix-Bot-Libを使用してMatrixボットを構築し、認証とデプロイのオプションを比較し、コマンドをテストし、代わりにmatrix-nioを使用すべき場合を理解します。

Let's Encrypt SSLを使用してUbuntu 24.04にJitsi Meetをインストールする方法

Let's Encrypt SSLを使用してUbuntu 24.04にJitsi Meetをインストールする方法

DNS、ファイアウォールルール、公式リポジトリ、Let's Encrypt SSL、サービスチェック、NATトラブルシューティングを含むJitsi MeetをUbuntu 24.04にインストールします。

ownCloudデスクトップ同期クライアントで「SSL証明書の検証に失敗しました」というエラーを修正する

ownCloudデスクトップ同期クライアントで「SSL証明書の検証に失敗しました」というエラーを修正する

ownCloud Desktopの同期証明書エラーを修正するには、サーバーURL、証明書名と証明書チェーン、システムクロック、クライアントバージョン、および信頼済みCAストアを確認してください。

Ubuntu 24.04でNextcloudのRedisキャッシングを設定する方法

Ubuntu 24.04でNextcloudのRedisキャッシングを設定する方法

PhpRedis、APCu、ループバック専用のRedisサービス、および実践的な検証手順を使用して、Ubuntu 24.04上でNextcloud向けにRedisファイルロックと分散キャッシュを設定します。

Element Webの「イベントの復号化に失敗しました」というE2EEエラーを修正する

Element Webの「イベントの復号化に失敗しました」というE2EEエラーを修正する

デバイス認証、キーのバックアップ、リカバリキー、および紛失したルームキーを確認することで、メッセージ履歴を損なうことなく、Element Webの復号化エラーをトラブルシューティングします。

Nextcloudで二要素認証(2FA)を設定および適用する方法

Nextcloudで二要素認証(2FA)を設定および適用する方法

Nextcloudの2要素認証プロバイダーを有効にする方法、ユーザーまたはグループに対して2要素認証を強制する方法、復旧を準備する方法、ログインとクライアントアプリを検証する方法を学びましょう。

ZimbraでIPアドレスによる送信メールリレーを制限する方法

ZimbraでIPアドレスによる送信メールリレーを制限する方法

zimbraMtaMyNetworks を使用すると、Zimbra で認証されていない送信メールのリレーを信頼できる IP アドレスに制限できます。許可リストを安全に検査、更新、再読み込み、検証する方法を学びましょう。

NextcloudのPHPメモリ制限警告を修正する

NextcloudのPHPメモリ制限警告を修正する

Nextcloud の PHP メモリ制限を少なくとも 512M に設定し、適切な Web PHP 設定を見つけて、Apache または PHP-FPM を再起動し、警告が解消されたことを確認してください。

音声通話およびビデオ通話用のMatrix Coturn TURN/STUNサーバーの設定方法

音声通話およびビデオ通話用のMatrix Coturn TURN/STUNサーバーの設定方法

CoturnをSynapseと連携させて、Matrix WebRTC通話を設定します。共有認証情報、NAT、ファイアウォールポート、TLSオプションを設定し、従来のTURNとMatrixRTCおよびLiveKitを区別します。

NextcloudメールアプリをOAuth2認証で設定する方法

NextcloudメールアプリをOAuth2認証で設定する方法

Nextcloud MailをGmailまたはMicrosoft 365向けにOAuth2で設定し、IMAP/SMTPアクセスを確認し、リダイレクトの問題をトラブルシューティングし、制限事項を把握します。