Как настроить пользовательские псевдонимы комнат Matrix в вашем домене

Псевдоним комнаты Matrix присваивает комнате удобочитаемый адрес, например #support:example.org, . Часть после двоеточия — это имя сервера домашнего сервера , домен, которому принадлежит пространство имен псевдонима. Это не произвольная метка домена, которую можно изменить, добавив запись DNS. Чтобы использовать свой собственный домен, ваш домашний сервер должен быть настроен с этим доменом в качестве имени сервера; после этого федерацию можно делегировать отдельному хосту.

example.orgВ этом руководстве в качестве домена используется matrix.example.orgимя хоста Synapse, а #support:example.orgв качестве целевого псевдонима — другое имя. Замените эти заполнители своими значениями. Основное внимание уделяется самостоятельно размещенному Synapse. Если вы используете хостинг Matrix, проверьте, позволяет ли он использовать пользовательское имя сервера; многие хостинговые аккаунты позволяют создавать псевдонимы только в рамках домена провайдера.

Что делает псевдоним комнаты в Матрице?

Домашний сервер — это сервер Matrix, который хранит данные о комнатах пользователей и подключается к другим серверам. Идентификатор комнаты , например !opaqueid:example.org, , технически идентифицирует комнату. Псевдоним комнаты , например #support:example.org, , — это читаемая запись в каталоге, которая разрешается в идентификатор комнаты и список серверов, которые могут помочь пользователю присоединиться.

Псевдоним не переименовывает комнату, не изменяет ее конфиденциальность и не гарантирует ее отображение в общедоступном каталоге комнат. Это отдельные настройки комнаты. У комнаты может быть несколько псевдонимов. Канонический псевдоним — это предпочтительный адрес, отображаемый или используемый клиентами; он публикуется как состояние комнаты, в то время как домашний сервер поддерживает сопоставление псевдонима с комнатой. Спецификация Matrix предупреждает, что сопоставление псевдонимов может меняться, поэтому перед тем, как полагаться на него, необходимо определить адрес.

Прежде чем начать

  • Управляйте доменом, который вы хотите использовать, например example.org, [укажите домен], включая возможность предоставления HTTPS-контента по этому домену.
  • Запустите домашний сервер, например Synapse, с параметром Matrix, server_nameустановленным на example.org. Это значение выбирается при настройке сервера и не должно изменяться бездумно позже: идентификаторы пользователей и псевдонимы используют его в качестве своего пространства имен.
  • Необходимо наличие работающего TLS-сертификата и маршрута федерации. Делегированный хост Matrix, например matrix.example.org, должен предоставить действительный сертификат.
  • Необходимо быть подключенным к комнате и иметь необходимые разрешения для изменения ее адресов. Synapse также имеет серверные правила, которые могут разрешать или запрещать создание псевдонимов.

Если сервер уже работает с другим именем, например provider.net, , создание #support:example.orgне является способом быстрого сопоставления доменов. Обратитесь к провайдеру за информацией о поддержке пользовательских доменов или спланируйте отдельное развертывание и миграцию домашнего сервера. Matrix не определяет процесс создания псевдонимов для одного домашнего сервера в пространстве имен другого сервера.

Шаг 1: Выберите имя сервера и маршрут федерации.

Перед настройкой домашнего сервера определите, какое имя будет отображаться после двоеточия. В этом примере Synapse использует example.orgв качестве имени сервера, а его клиентские и федеративные службы работают по адресу matrix.example.org. DNS-запись направляет трафик для matrix.example.orgна хост или обратный прокси. Сама по себе DNS-запись не устанавливает пространство имен псевдонимов; это делает имя сервера Synapse.

Когда домашний сервер недоступен напрямую по example.orgстандартному порту федерации 8448, Matrix необходимо найти способ обнаружения своей конечной точки федерации. Один из распространенных методов — делегирование через .well-known : небольшой HTTPS JSON-ответ по адресу server-name направляет трафик федерации на фактический хост Matrix. Разместите его по адресу https://example.org/.well-known/matrix/server:

{
  "m.server": "matrix.example.org:443"
}

Убедитесь, что ответ представляет собой корректный JSON, передается по HTTPS, и что целевой хост имеет действительный сертификат и направляет запросы федерации в Synapse. Порт можно опустить, если конечная точка федерации использует порт 8448; в этом примере явно указан порт 443. Если Synapse уже предоставляет федерацию в домене имени сервера на порту 8448, делегирование может не потребоваться. /.well-known/matrix/clientФайл, предназначенный для клиента, представляет собой другой механизм обнаружения и не заменяет делегирование сервера.

В текущей документации по настройке Synapse предусмотрена serve_server_wellknownопция для случаев, когда запросы к домену с именем сервера на порту 443 перенаправляются в Synapse. Используйте эту опцию только в том случае, если ваш прокси-сервер и маршрутизация домена соответствуют описанным требованиям. В противном случае настройте JSON-ответ на вашем веб-сервере или прокси-сервере.

Шаг 2: Проверьте политики псевдонимов Synapse.

Synapse может ограничивать круг лиц, имеющих право создавать псевдонимы, и круг разрешенных адресов помещений. В настройках homeserver.yamlпроверьте, alias_creation_rulesотклонен ли запрос на создание псевдонима. Synapse оценивает настроенные правила по порядку; первое соответствующее правило определяет запрос, и если ни одно правило не соответствует, запрос отклоняется. Пустой список отклоняет все запросы на создание псевдонимов. Пустой или отсутствующий список разрешает создание псевдонимов по умолчанию, с учетом других проверок.

Также проверьте параметр require_membership_for_aliases, который по умолчанию требует, чтобы пользователь находился в комнате. Если вы изменяете конфигурацию Synapse, следуйте стандартной процедуре проверки и перезапуска вашего развертывания и избегайте чрезмерного ослабления политики. Уровни мощности комнаты и доступные клиенту элементы управления также могут влиять на то, сможет ли обычный участник установить предпочтительный псевдоним.

Шаг 3: Создайте псевдоним для комнаты.

Присоединитесь к нужной комнате в клиенте Matrix и откройте ее настройки. Найдите раздел адреса или псевдонима; текст и структура клиента могут различаться в зависимости от версии. Введите полный адрес, включая начальный ключ #и домен домашнего сервера, например #support:example.org. Добавьте его в качестве адреса комнаты и, если клиент предлагает такую ​​возможность, установите его в качестве канонического или предпочтительного псевдонима. Сохраните изменения.

Если ваш клиент не предоставляет управление псевдонимами, сопоставление можно создать с помощью запроса API клиент-сервер. Аутентифицированная PUT /_matrix/client/v3/directory/room/{roomAlias}конечная точка требует указания идентификатора комнаты в теле запроса. Например, авторизованный участник комнаты или учетная запись сервера могут отправить запрос на домашний сервер, которому принадлежит example.org:

curl -X PUT \
  "https://matrix.example.org/_matrix/client/v3/directory/room/%23support%3Aexample.org" \
  -H "Authorization: Bearer $MATRIX_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"room_id":"!yourRoomId:example.org"}'

Замените указанный в примере ID комнаты на точный ID комнаты и используйте действительный токен доступа с необходимыми авторизациями. Относитесь к токену как к паролю: не публикуйте его, не вставляйте в сообщения службы поддержки и не добавляйте в систему контроля версий. Процент экранируется при кодировании URL #и :для HTTP-пути. Успешный ответ означает, что сопоставление создано. Ответ «уже существует» означает, что имя занято; перед изменением или удалением чего-либо подтвердите, кто является владельцем.

Шаг 4: Проверьте адрес и поделитесь им.

Разрешите псевдоним, используя общедоступный API клиент-сервер. Для этого поиска аутентификация не требуется:

curl -i \
  "https://matrix.example.org/_matrix/client/v3/directory/room/%23support%3Aexample.org"

Успешный ответ должен содержать ожидаемый идентификатор комнаты room_idи serversсписок. Сравните полученный идентификатор комнаты с предполагаемым идентификатором комнаты. Ошибка 404 означает, что псевдоним не имеет сопоставления на сервере, обрабатывающем это пространство имен. Ошибка 400 указывает на некорректно отформатированный адрес. Затем проверьте полный псевдоним во второй учетной записи или клиенте Matrix, чтобы убедиться, что комната разрешается и к ней можно присоединиться в соответствии с правилами присоединения.

Если вы задали канонический псевдоним, еще раз проверьте сведения о комнате и убедитесь, что предпочтительный адрес совпадает с тем, который вы собираетесь опубликовать. Делитесь псевдонимом или постоянной ссылкой Matrix только после подтверждения того, что она ведет в правильную комнату. Помните, что публичный псевдоним не делает приватную комнату публичной; пользователю по-прежнему необходимы разрешения для присоединения.

Распространенные проблемы, которых следует избегать

  • Использование домена, не принадлежащего домашнему серверу: имя сервера в псевдониме должно совпадать с пространством имен домашнего сервера, который его создал. DNS CNAME сам по себе не может авторизовать домен другого сервера.
  • Неправильное использование домена и хоста: example.org может быть пространством имен псевдонимов, а matrix.example.org— хостом службы. Задавайте имя сервера Synapse и делегирование намеренно.
  • Неправильное размещение файла обнаружения клиентов: делегирование федерации использует /.well-known/matrix/server. Файл обнаружения клиентов имеет другой путь и предназначение.
  • Предположим, что псевдоним публикует комнату в открытом доступе: разрешение псевдонима и публикация публичного каталога комнат — это отдельные операции, регулируемые отдельными правилами.
  • Изменение имени сервера в уже существующей системе развертывания: существующие идентификаторы Matrix зависят от этого пространства имен. Рассматривайте изменение домена как архитектурную миграцию, а не как быструю настройку псевдонима.
  • Совместное использование без проверки сопоставления: перед публикацией необходимо разрешить псевдоним и сравнить полученный идентификатор комнаты. Читаемый адрес удобен, но именно сопоставление сервера определяет, куда он ведет.

Подробности протокола см. в разделах « Формат идентификатора и псевдонима Matrix» и «API псевдонимов комнат Matrix» . Для настройки Synapse обратитесь к руководству по делегированию федерации и руководству по настройке Element . Параметры Synapse и экраны клиента могут меняться между версиями; проверьте документацию для используемой вами версии.

Оставить комментарий

Устранение проблемы высокой загрузки ЦП в Jitsi Meet в браузерах клиентов.

Устранение проблемы высокой загрузки ЦП в Jitsi Meet в браузерах клиентов.

Диагностика скачков загрузки ЦП в браузере Jitsi Meet и снижение нагрузки на клиентское приложение путем проверки видеофайлов, эффектов камеры, графики браузера и настроек хоста.

Как отслеживать метрики Jitsi Videobridge с помощью Prometheus и Grafana

Как отслеживать метрики Jitsi Videobridge с помощью Prometheus и Grafana

Отслеживайте состояние Jitsi Videobridge, загрузку конференций и трафик с помощью встроенной точки доступа Prometheus, а затем анализируйте и отображайте данные в виде графиков в Grafana.

Как настроить пользовательское доменное имя для Jitsi Meet Docker

Как настроить пользовательское доменное имя для Jitsi Meet Docker

Настройте собственный домен для Jitsi Meet Docker с указанием DNS, PUBLIC_URL, HTTPS, Let's Encrypt, портов брандмауэра, настроек NAT и сквозной проверки.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.

Исправлено предупреждение Nextcloud «Неправильно настроен PHP OPcache».

Исправлено предупреждение Nextcloud «Неправильно настроен PHP OPcache».

Узнайте, как диагностировать и устранять предупреждение Nextcloud о конфигурации PHP OPcache, проверив активные параметры PHP SAPI, ограничения размера, комментарии и настройки повторной проверки.

Исправление ошибок миграции базы данных Kopano после обновления версии MySQL.

Исправление ошибок миграции базы данных Kopano после обновления версии MySQL.

Для устранения неполадок, возникающих при миграции базы данных Kopano после обновления MySQL или MariaDB, проверьте резервные копии, версии серверов, режимы SQL, кодировку, состояние схемы и журналы.

Как настроить аутентификацию LDAP и Active Directory в Nextcloud

Как настроить аутентификацию LDAP и Active Directory в Nextcloud

Подключите Nextcloud к LDAP или Active Directory с помощью защищенного канала связи, фильтров пользователей и групп, атрибутов входа в систему и проверенной процедуры развертывания.

Как исправить уведомления Element Android без сервисов Google: руководство по UnifiedPush

Как исправить уведомления Element Android без сервисов Google: руководство по UnifiedPush

Исправление проблем с уведомлениями Element Android на телефонах без привязки к Google путем настройки UnifiedPush, разрешений Android, параметров батареи и надежных тестов проверки.

Исправлено предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы».

Исправлено предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы».

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных с помощью официальной команды occ. Сначала сделайте резервную копию, просмотрите изменения, выполните восстановление и проверьте результат.

Как настроить единый вход (SSO) с помощью Keycloak в Element Web

Как настроить единый вход (SSO) с помощью Keycloak в Element Web

Настройте единый вход Keycloak для Element Web, подключив OIDC к Synapse, задав точный URL-адрес обратного вызова, сопоставив данные пользователя и протестировав выход из системы.