Nextcloud LDAPとActive Directoryログインの設定

NextcloudでLDAPまたはActive Directoryアカウントを使用するには、「LDAPユーザーおよびグループバックエンド」アプリを有効にし、ディレクトリ接続を設定してから、スタッフが利用できるようにする前に、ユーザー、ログイン、およびグループフィルタをテストしてください。NextcloudのLDAP統合はディレクトリに対して認証を行うものであり、ディレクトリアカウントを作成または管理するものではありません。読み取り専用のサービスアカウントと、小規模で既知のテストグループから始めて、誰が表示され、誰がサインインできるかを正確に確認してください。

これらの手順は、Nextcloud 35 管理マニュアルに準拠しています。メニューのラベルやパッケージはリリースによって異なる場合があるため、異なる場合はインストールされているバージョンのマニュアルを参照してください。

ディレクトリ接続を準備する

Nextcloudの設定を開く前に、LDAPまたはAD管理者に、ディレクトリのホスト名、暗号化接続方法、ポート番号、ベースDN、および必要なユーザーとグループツリーを検索できるバインドアカウントを問い合わせてください。バインドアカウントはNextcloudがディレクトリレコードを検索するために使用するもので、各ユーザーのログイン認証情報とは別個のものです。Nextcloudのドキュメントでは、専用の検索アカウントを使用することを推奨しています。

証明書検証付きの暗号化接続を使用してください。Nextcloudのドキュメントでは、LDAPSのデフォルトポートは636番ポートです。NextcloudサーバーのPHP環境はディレクトリ証明書を信頼する必要があります。ルーチン的な修正として検証を無効にしないでください。標準以外のトランスポートやポートを使用する場合は、ディレクトリ管理者に確認してください。

PHP LDAPモジュールがインストールされていること(多くの場合、パッケージ化されていますphp-ldap)と、Nextcloudサーバーが選択したポートでディレクトリにアクセスできることを確認してください。コンテナおよびマネージドデプロイメントでは、それぞれ独自のインストール方法がサポートされている場合があります。

LDAPバックエンドを有効にしてサーバーに接続します。

  1. Nextcloud に管理者としてサインインします。アプリを開き、LDAP ユーザーとグループのバックエンドが有効になっていない場合は有効にします。 が使用するアプリケーション ID はoccですuser_ldap。
  2. LDAP/AD統合の管理設定を開き、新しいサーバー構成を開始します。まず「サーバー」タブを完了してください。Nextcloudはこの設定を使用してディレクトリ接続をテストし、他のタブの設定を検出します。
  3. ディレクトリのホスト名またはldaps://URI、検出されない場合はポート番号、バインドアカウントの完全な識別名(DN)、パスワード、およびベースDNを入力してください。ベースDNは、Nextcloudが検索するディレクトリツリーの部分を識別します。たとえば、dc=example,dc=comはフォーマットであり、ディレクトリと一致しない限りコピーする値ではありません。
  4. 接続テストを実行します。検出でベースDNまたはポートが見つからない場合は、ディレクトリ管理者から提供された値を入力してください。テストをパスさせるためだけにベースDNを拡張しないでください。対象となるユーザーとグループを含む最小のディレクトリサブツリーを使用してください。

緑色のサーバーインジケーターは、Nextcloudがこれらの接続設定を使用してディレクトリと通信できることを意味します。ただし、これは適切なユーザーがログインできることや、グループメンバーシップが正しくマッピングされていることを保証するものではありません。統合が完了したとみなす前に、ユーザー、ログイン、およびグループの設定を引き続き確認してください。

ログインできるアカウントを制限する

「ユーザー」タブを使用して、Nextcloudが表示するLDAPレコードを定義します。「ログイン属性」を使用して、ログイン画面でユーザーが入力できる属性を決定します。これらは別々の制御です。ユーザーはログインを許可されなくてもディレクトリ内で検出可能になり、ログインフィルタによって受け入れられるユーザーを制御できます。

Active Directory の場合、Nextcloud のセットアップでは、ユーザー名属性を含む一般的な設定を自動的に検出できます。ドキュメントに記載されているデフォルトのユーザー名属性は、通常、sAMAccountNameActive Directory およびuid多くの LDAP ディレクトリに存在します。検出された値を実際のテストアカウントと比較してください。ユーザーがメールアドレスでログインする必要がある場合は、許可されたすべてのアカウントに対してメールアドレスが入力され、かつ一意であることを確認してから、メールアドレス属性を選択してください。

可能な限り、アクセスを専用のNextcloudグループに制限してください。グループセレクター、または独自のオブジェクトクラス、グループDN、属性に対してテスト済みのフィルタを使用してください。サンプルフィルタをそのままコピーしないでください。不適切なフィルタは、ユーザーを返さないか、意図しない広範囲なユーザーセットを返す可能性があります。

「グループ」では、ディレクトリのグループオブジェクトクラスと公開するグループを選択します。デフォルトでは、設定が完了するまでグループは使用できません。ネストされた AD グループの場合、Nextcloud のドキュメントには、「ネストされたグループ」オプションだけでは不十分な場合があると記載されています。ユーザーフィルタとログインフィルタにも AD のマッチングルールが必要になる場合があります。この動作については、ディレクトリ管理者に確認し、ネストされたメンバーをテストしてください。

本番環境に入る前に、テスト用のIDを検証してください。

  1. 理解できないオプションは変更せずに、詳細設定を確認してください。特に、表示名を指定するフィールドを決定し、内部ユーザー名ルールは変更しないでください。
  2. 設定の有効状態を確認してください。Nextcloudは、設定が無効になっていると、認証が失敗し、「パスワードが間違っています」という誤解を招くメッセージが表示される可能性があると警告しています。通常、テストが成功すると自動的に有効になります。
  3. テスト構成を使用してから保存してください。このボタンは現在フィールドに入力されている値をテストするため、テスト前に保存する必要はありません。
  4. Nextcloudのユーザーページを開き、想定されるサンプルユーザーとグループが表示されていることを確認してください。次に、許可されたディレクトリアカウント1つと、除外すべきアカウント1つを使用して、サインインテストを実施してください。
  5. 許可されたアカウントの表示名、グループメンバーシップ、およびクォータ動作が正しいことを確認してください。プロファイル属性またはLDAPクォータが設定されている場合は、広範囲に展開する前にテストユーザーで検証してください。

コマンドラインチェックを行うには、まず で構成IDを見つけますocc ldap:show-config。次に、そのIDを置き換えて、ドキュメントに記載されているテストコマンドを実行します。

sudo -E -u www-data php occ ldap:test-config s01
sudo -E -u www-data php occ ldap:test-user-settings "USER_DN"

インストール環境に合わせてコマンドパスとWebサーバーアカウントを調整してください。コンテナユーザーは、イメージのocc手順に従ってください。最初のコマンドはバインディングをテストし、2番目のコマンドは1人のユーザーのマッピングを検査します。

統合によって何が変わらないかを把握する

LDAPバックエンドはディレクトリアカウントを読み取るだけで、作成、編集、削除は行いません。Nextcloudからのパスワード変更は任意であり、ディレクトリのサポート状況と設定に依存します。それ以外の場合は、組織の通常のパスワードリセット手順を使用する必要があります。

Nextcloudは内部マッピングを保存し、内部ユーザー名は事実上変更不可能です。そのため、ホームフォルダのパスやDAV URLに表示されることがあります。ユーザーをオンボーディングする前に、安定した識別子を選択してください。トラブルシューティングの手っ取り早い方法として、本番環境のインスタンスでLDAPマッピングをクリアしないでください。参照が残ってしまい、すべてのLDAP構成に影響を及ぼします。

テストが失敗した場合は、Nextcloudのログ、DNS、ポートアクセス、バインド認証情報、ベースDN、証明書の信頼性を確認してください。ユーザーが表示されない場合は、ユーザーフィルタとオブジェクトクラスを確認してください。ユーザーが表示されるもののサインインできない場合は、ログイン属性とアクティブステータスを確認してください。許可されたアカウントでログインし、除外されたアカウントが拒否されることを確認することで検証してください。

参考資料:Nextcloud 35 LDAP認証ドキュメント、Nextcloud 35 LDAP occコマンド、およびNextcloud PHPモジュール要件。

コメントを残す

Nextcloud LDAPとActive Directoryログインの設定

NextcloudをLDAPまたはActive Directoryに接続し、ユーザーおよびグループフィルタを使用してアクセスを制限し、展開前に安全な認証を検証してください。

Nextcloudユーザーに二段階認証を必須にする

サポートされている2要素認証プロバイダーを有効にし、アカウント復旧の準備を行った後、すべてのユーザーまたは選択したNextcloudグループに対して2要素認証を必須にします。

Collabora CODEの保存済みドキュメントをストレージ暗号化で保護する

Collabora CODEで編集されたファイルは、ストレージ層を暗号化し、一時データを保護し、暗号化と復元を検証することで安全に保護されます。

Collabora CODEをARM64上で正しいイメージを使って実行しましょう

Collabora CODEをARM64上で正しいイメージを使って実行しましょう

ホストアーキテクチャを確認し、CODEタグがARM64を公開していることを確認し、強制的に設定されているAMD64設定を削除し、イメージエラーを権限の問題やメモリの問題から切り離してください。

Collabora OnlineをownCloud Infinite Scaleに接続する

Collabora OnlineとownCloud Infinite Scale間のWOPI接続を設定し、適切なサービスURLを構成して、ドキュメントの編集内容が保存されることを確認します。

Collabora CODEにおけるWOPIを介したブロックファイルのエクスポート

Collabora Online CODEでドキュメントのエクスポートを防止するには、WOPIのDisableExport権限を設定し、ホストとエディタがその権限を適用していることを確認してください。

CollaboraをNginxの背後に配置してもWebSocketが壊れないようにする方法

CollaboraをNginxの背後に配置してもWebSocketが壊れないようにする方法

NginxのTLS終端、Collaboraのルート、およびWebSocketヘッダーを設定し、実際のドキュメントを開く前に公開エンドポイントをテストしてください。

コード編集セッションが10分で終了しないようにする

10分間のCODE切断の原因をプロキシ、ロードバランサー、またはWebSocketパスまで追跡し、タイムアウトを修正してセッションが接続された状態を維持することを確認してください。

Helmを使用してKubernetes上にCollabora CODEをデプロイする

Collabora公式Helmチャートをインストールし、WOPIアクセスとイングレスアフィニティを設定し、一般的な設定ミスがないかデプロイメントを確認します。

Collaboraの空白ドキュメントをトレースして、問題のあるレイヤーを特定する

Collaboraの空白ドキュメントをトレースして、問題のあるレイヤーを特定する

Collaboraが空白のドキュメントを開く理由を特定するために、ブラウザのリクエスト、WOPIログ、およびターゲットを絞ったプロキシチェックを使用し、証拠に合った修正方法を選択してください。