自己ホスト型Matrixサーバーでのユーザー登録を制限する方法

セルフホスト型のMatrixサーバーでは、「登録制限」は、一般ユーザーによる登録をすべて停止することから、招待コードを持つユーザーのみを許可することまで、さまざまな意味を持ちます。Synapseの場合、最も簡単な選択肢は、一般ユーザーによる登録を無効にすることです。それでも新規ユーザーの参加を希望する場合は、登録トークンを必須とし、各ユーザーに有効期限付きのトークンを付与してください。これらの制御は、新しいローカルアカウントの作成に影響し、既存ユーザーの削除やMatrixフェデレーションの無効化には影響しません。

お使いのサーバーに適したコントロールを選択してください。

ゴールシナプスアプローチ主なトレードオフ
アカウントを作成できるのは管理者のみです。設定しますenable_registration: false。管理者CLIまたは制御された管理者ワークフローを使用します。Matrixクライアントからは新規登録できません。共有登録情報は必ず保護してください。
少人数のコミュニティを招待する登録機能を有効にし、登録トークンを要求する。使い捨ての、有効期限の短いトークンを発行する。管理者はトークンを配布および管理する必要があります。有効なトークンを受け取った人は誰でもそれを使用できます。
一般市民の幅広い登録を可能にする登録は引き続き受け付け、CAPTCHAやトークンなどの適切な不正利用防止対策、さらにレート制限と監視機能を追加してください。正規ユーザーにとっては手間が増えるだけでなく、単一のチェック方法では不正利用からの保護を保証できない。
IDプロバイダーを使用するアクセスに事前承認が必要な場合は、プロバイダのSynapse設定でSSOを設定し、アカウントの自動作成を無効にしてください。IDプロバイダーによる管理が必要です。有効なSSOログインは、必ずしも既存のMatrixアカウントを意味するものではありません。

以下の例はSynapseに関するものです。Dendrite、Conduit、その他のホームサーバー実装では、異なる設定および管理インターフェースが使用されます。Synapseの設定を適用する前に、ご使用のサーバーのドキュメントをご確認ください。

オプション1:公開登録を無効にする

自宅のプライベートサーバー、小規模な組織、または管理者が各アカウントをプロビジョニングするサーバーの場合は、アクティブなSynapse構成でクライアント登録を無効にしてください。

enable_registration: false

Synapseでは、この設定はデフォルトで無効になっているとドキュメントに記載されています。サービスまたはコンテナが実際に読み込む設定ファイルを編集し、YAMLを検証してから、通常のサービス管理プロセスを使用してSynapseを再起動してください。Dockerデプロイメントでは、ホストパスから設定をマウントする可能性があるため、コンテナ内で同様の名前のファイルを編集しても、起動時に使用されるファイルは変更されない場合があります。

登録が無効になっている場合、ユーザーは通常のクライアント登録フローを通じて新しいアカウントを作成できません。管理者は、サポートされている管理方法を通じてアカウントを作成できます。Synapse は、設定がfalse でregistration_shared_secretあっても、そのシークレットを使用してアカウントを作成できると明示的に警告していますenable_registration。これは影響の大きい認証情報として扱い、リポジトリ、チャット、公開環境ダンプには含めず、アクセスを制限し、管理ワークフローで必要な場合にのみ保持してください。シークレットを知っている人は誰でも、管理者アカウントを含め、アカウントを作成できます。

OIDC、CAS、またはその他のSSO統合を使用している場合は、そのプロバイダ独自の自動登録設定も確認してください。Synapseでは、プロバイダレベルの登録スイッチについてドキュメント化しています。これは、そうしないと、最初のSSOログインが成功した際にユーザーが自動的に作成される可能性があるためです。OIDCの場合は、oidc_providers[].enable_registration一般的な登録設定も併せて確認してください。

オプション2:トークンを使用した登録のみを許可する

メンバーが自分のアカウントを作成できる必要があるが、サインアップは管理者によって承認または配布される必要がある場合は、登録トークンを使用します。Synapse の設定で、以下の両方の値を設定します。

enable_registration: true
registration_requires_token: true

両方とも必要です。トークン設定では登録時にトークンが必要であり、登録自体も有効にする必要があります。変更を適用してSynapseを再起動してください。この設定を変更しても、既存のアカウントや以前に作成されたトークンは削除されません。

使用回数制限付きトークンを作成する

Synapseは登録トークン管理APIを提供しています。リクエストには管理者アクセストークンが必要です。例えば、このリクエストは1つの登録を完了できるトークンを作成します。

curl -sS -X POST "$SYNAPSE_URL/_synapse/admin/v1/registration_tokens/new" \
  -H "Authorization: Bearer $ADMIN_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"uses_allowed": 1}'

環境変数をホームサーバーのベース URL と管理者アクセス トークンに置き換えてください。管理者トークンは非公開にし、実際の認証情報を含むコマンドを共有ログやサポート投稿に貼り付けないようにしてください。API は、Unix エポックからのミリ秒単位で有効期限を指定することもできます。個別の招待には使い捨てトークンを使用し、ワークフローで有効期限を確実に計算および維持できる場合に有効期限を設定してください。制限が省略されたトークンは使用回数に制限がなく、有効期限もない場合があるため、配布する前に返されるフィールドを確認してください。

トークンを検査するには、管理者は を呼び出すことができますGET /_synapse/admin/v1/registration_tokens。応答には、許可された使用、保留中の登録、完了した登録、および有効期限が含まれます。トークンが漏洩した場合は、許可された使用をゼロに更新するか、ドキュメントに記載されている管理者 API を使用してトークンを削除してください。トークンはサインアップ認証情報であり、Matrix ルームへの招待ではありません。トークンによって新しいアカウントが自動的にルームに参加することはありません。

重要な互換性に関する注意事項: Synapseのregistration-token Admin APIは、Matrix Authentication Service(MAS)との連携が有効になっている場合は無効になります。その場合は、代わりに、お使いの環境に合わせてドキュメント化されているMAS Admin APIまたはMAS CLIを使用してください。SynapseのトークンコマンドがMASでもそのまま動作するとは限りませんのでご注意ください。

オプション3:公開登録にチェック機能を追加する

誰でもアカウントをリクエストできるようにすることが目的であれば、トークンを要求するのは制限が厳しすぎる可能性があります。Synapse の設定では、CAPTCHA やサードパーティ識別子の要件も可能なチェックとして記載されています。CAPTCHA は正しく設定されたプロバイダに依存し、アクセシビリティとプライバシーのコストが増加する可能性があります。メールアドレスや電話番号を要求すると、セットアップと検証の依存関係が増える可能性があります。これは、各アカウントを承認することとは異なります。3PID を必須にする前に、バージョンとクライアントフローが実際にどの検証サービスをサポートしているかを確認してください。

レート制限は、繰り返しリクエストを減らすため、これらの制御と併用すると効果的ですが、登録を許可するユーザーを決定するものではありません。登録試行とサーバーログを監視し、トラフィックとデプロ​​イメントに合わせて制限を調整してください。インストールされているSynapseのバージョンを確認せずに古い設定スニペットをコピーすることは避けてください。登録およびIDサービスオプションは時間の経過とともに変更されています。

登録締め切りによって何が変わるのか、何が変わらないのか

  • これは新しいローカルアカウントを管理します。登録を無効にすると、ホームサーバー上での通常のアカウント作成フローがブロックされます。
  • アカウントは削除されません。既存のユーザーは、別途アカウントを停止または無効化しない限り、アカウントを保持します。
  • これはフェデレーションを無効にするものではありません。他のホームサーバーのユーザーは、ルームメンバーシップとフェデレーションの設定に応じて、ローカルユーザーやルームと引き続き通信できます。
  • これはルームを招待制にするものではありません。ルーム参加ルールは別の設定項目であり、登録トークンはルームへの招待に代わるものではありません。
  • これは必ずしもすべてのプロビジョニングパスをブロックするわけではありません。管理API、設定済みの共有シークレット、アプリケーションサービス、およびSSOアカウント作成設定については、別途確認が必要です。

登録URLを隠すリバースプロキシルールは、ネットワーク層における追加の制御手段となり得ますが、クライアントフローを阻害しやすく、ホームサーバー自体の設定を置き換えるものではありません。アプリケーションレベルの設定を主要な制御手段として使用し、プロキシ設定を変更した後は必ず実際のデプロイメントをテストしてください。

結果を確認する

  1. コンテナのバインドマウントや生成された構成など、有効な構成ソースを確認し、意図した登録値になっているか確認してください。
  2. Synapseを再起動し、起動ログを確認してYAMLエラーやサポートされていない設定がないか確認してください。
  3. ログアウトしたMatrixクライアントから、新規登録を開始してみてください。登録が無効になっている場合、このフローでは有効な公開サインアップは提供されません。トークン必須の登録が有効になっている場合、有効なトークンがないリクエストは完了しません。
  4. トークン登録については、一時的な使い捨てトークンを使用してテストし、アカウント作成が1回のみ完了することを確認してください。Admin APIのレスポンスでcompleted、、、pendingおよび有効期限情報を確認してください。
  5. 別途設定したSSOパスとアカウントプロビジョニングスクリプトをテストし、アクセスポリシーに従って動作することを確認してください。

実際に使用する予定がない限り、テストアカウントに実際の招待トークンを使用しないでください。設定が効果を発揮しない場合は、まずSynapseが実際に読み込むファイルを変更したこと、およびサービスが再起動したことを確認してください。次に、共有登録シークレット、SSO自動登録、またはその他の信頼できるプロビジョニングメカニズムを確認してください。

公式資料

Synapseのバージョン管理された設定ファイルとAdmin APIドキュメントは、オプション名とリクエストフィールドに関する信頼できる情報源です。上記の手順は、特定のオペレーティングシステム、コンテナイメージ、リバースプロキシ、またはMatrixクライアントを前提としていません。変更を適用する前に、これらのデプロイメント固有の詳細を確認してください。

コメントを残す

ownCloud oCISでユーザーのストレージクォータを設定する方法

ownCloud oCISでユーザーのストレージクォータを設定する方法

ownCloud Infinite Scaleユーザーの個人スペースのクォータを設定する方法、プロジェクトスペースやグローバル制限と区別する方法、そして役割ごとに新規ユーザーにデフォルト値を割り当てる方法を学びましょう。

BigBlueButton FreeSWITCH SIP登録タイムアウトの修正:実践的な診断ガイド

BigBlueButton FreeSWITCH SIP登録タイムアウトの修正:実践的な診断ガイド

BigBlueButton FreeSWITCHのSIP登録タイムアウトを診断するには、サービスの状態、SIPおよびESLリスナー、NATアドレス、ファイアウォールルール、ログを確認します。

ownCloudモバイルアプリの「接続拒否」エラーを修正する方法

ownCloudモバイルアプリの「接続拒否」エラーを修正する方法

ownCloudモバイルアプリの接続拒否エラーを修正するには、サーバーURL、HTTPSポート、Webサーバー、ファイアウォール、プロキシ、TLS、および信頼済みドメインを確認してください。

自己ホスト型Matrixサーバーでのユーザー登録を制限する方法

自己ホスト型Matrixサーバーでのユーザー登録を制限する方法

Synapse 上で新しい Matrix アカウントを制御する方法を、公開登録の無効化から使用制限付きトークンの発行まで、設定例とチェック項目を含めて比較します。

Fix the ownCloud Blank Page / White Screen of Death: Choose the Right Recovery Path

Fix the ownCloud Blank Page / White Screen of Death: Choose the Right Recovery Path

Fix an ownCloud blank page by separating browser, PHP, app, permissions, upgrade, and proxy failures, then choose the least disruptive recovery path.

Zimbraの「Nginxプロキシサービスが停止しました」エラーを修正する方法

Zimbraの「Nginxプロキシサービスが停止しました」エラーを修正する方法

Zimbraの停止したNGINXプロキシを診断し、適切なログを読み取り、安全に再起動し、設定の欠落、無効なポート、証明書、および上流の障害に対する的を絞った修正を確認します。

メールフローを中断せずにZimbra AmavisがCPUを100%消費する問題を修正する

メールフローを中断せずにZimbra AmavisがCPUを100%消費する問題を修正する

危険な変更を加える前に、キュー、ログ、SpamAssassin、ClamAV、および回復の兆候を確認することで、Zimbra AmavisがCPU使用率100%になっている場合の診断と修復方法を学びましょう。

iPhoneでZimbra ActiveSync接続エラーを修正する

iPhoneでZimbra ActiveSync接続エラーを修正する

アカウントの詳細、認証情報、証明書、ネットワークパス、サーバーポリシーを確認し、安全な代替手段を比較することで、iPhone 上の Zimbra ActiveSync エラーのトラブルシューティングを行います。

ownCloud Infinite ScaleとNextcloud 28の比較:パフォーマンスとRAM使用量について解説

ownCloud Infinite ScaleとNextcloud 28の比較:パフォーマンスとRAM使用量について解説

ownCloud Infinite ScaleとNextcloud 28を、アーキテクチャ、パフォーマンス動作、RAM要件、キャッシング、スケーリング、および実際の導入におけるトレードオフの観点から比較します。

Nextcloudの「トランザクションファイルロックが設定されていません」という問題を修正する

Nextcloudの「トランザクションファイルロックが設定されていません」という問題を修正する

Nextcloudのトランザクションファイルロックに関する警告を修正するには、デプロイメントを確認し、RedisまたはKeyValueCacheを設定し、適切なサービスを再起動し、ファイル操作を検証してください。