Перейти к содержимому

Вход и пароли

Настройка

Решите, как люди входят: длина пароля, пропуск входа в домашней сети и вход через внешние сервисы. Эти настройки меняет только Владелец, в Settings > Sign-in and security (Настройки > Вход и безопасность).

Задать минимальную длину пароля

Ссылка на «Задать минимальную длину пароля»
  1. Откройте Settings > Sign-in and security > Passwords (Пароли).
  2. Введите число от 4 до 64. По умолчанию — 8.
  3. Нажмите Save (сохранить). После перезагрузки страницы новое число останется на месте.

Минимум действует для каждого нового пароля: первого Владельца, принятых приглашений, смены пароля в My account (моя учётная запись) и holyarrs reset-owner. Прежние пароли работают до следующей смены. Самый длинный пароль — 1024 символа.

Пропускать вход в моей локальной сети

Ссылка на «Пропускать вход в моей локальной сети»

Устройства из домашней сети открывают HolyArrs от имени Владельца, без пароля. По умолчанию выключено.

  1. Откройте Settings > Sign-in and security > Local network (Локальная сеть).
  2. Перечислите свои сети, по одной в строке, не больше 32. Укажите диапазон (192.168.1.0/24, fd00::/8) или один адрес (192.168.1.20).
  3. Включите переключатель и сохраните. На карточке появится ваш собственный адрес.

Переключатель нельзя включить, если список пуст или есть хотя бы одна детская учётная запись. Создание ключей API, изменение настроек входа, чтение и замена секретов, восстановление из резервной копии всё равно требуют пароль.

Сначала проверьте адрес

Ссылка на «Сначала проверьте адрес»

В некоторых конфигурациях все устройства выглядят как один адрес шлюза: Docker Desktop, Docker в режиме rootless или Podman, Kubernetes NodePort. Обычно это 172.17.0.1, 172.18.0.1 и далее, 10.88.0.1, 10.89.x.1, 10.0.2.2 и 192.168.65.x.

Если внести в список один из них, любой, кто доберётся до HolyArrs, войдёт как Владелец. Карточка предупреждает, когда запись похожа на такой адрес. Откройте страницу со второго устройства: если там тот же адрес, выключите переключатель и удалите эту запись.

За обратным прокси HolyArrs берёт переданный адрес только от прокси из HOLYARRS_TRUSTED_PROXIES. Иначе карточка не показывает адрес и сообщает, что прокси не доверенный.

Входить можно через одного провайдера OpenID Connect. На странице входа он показан кнопкой.

  1. Откройте Settings > Sign-in and security > Single sign-on (Единый вход).
  2. Введите issuer провайдера и нажмите Test (проверить). Для проверки секрет не отправляется.
  3. Введите client id и client secret. Отметьте Public client (публичный клиент), если провайдер обходится без секрета.
  4. Скопируйте Callback address (адрес обратного вызова) и зарегистрируйте у провайдера именно этот адрес.
  5. Введите свой пароль и код двухфакторного входа, если он у вас включён, затем нажмите Save. Это нужно при каждом изменении.

Затем свяжите свою учётную запись: войдите с паролем, откройте My account, в разделе Linked sign-ins (связанные способы входа) нажмите Link (связать), подтвердите пароль и выберите Single sign-on.

Разрешить новым людям присоединяться через единый вход

Ссылка на «Разрешить новым людям присоединяться через единый вход»

По умолчанию выключено. Если включить, учётную запись получит каждый, кого впустит провайдер, поэтому HolyArrs просит подтверждение. Новички становятся Участниками, которые могут только запрашивать. Единый вход никогда не создаёт Владельца или Администратора.

Секрет вводится заново. Прежние связи удаляются, а все, кто входил через единый вход, выходят из системы. Они связывают учётную запись заново в My account. Если выключить единый вход, они тоже выйдут из системы.

  • Свой: My account > Linked sign-ins > Unlink (отвязать). Нужно недавнее подтверждение пароля; если это ваш единственный способ входа, HolyArrs откажет.
  • Чужой: Владелец делает это в Settings > Users and roles (Пользователи и роли). Если это единственный способ входа человека, HolyArrs спросит ещё раз.

После отвязки устройства, которые входили этим способом, выходят из системы. Если присоединение открыто, тот же человек может вернуться как новый Участник. Чтобы он не вернулся, выключите присоединение.

Признак проблемы: HolyArrs снова спрашивает пароль. Причина: для изменений учётных записей, ключей и настроек нужно подтверждение пароля за последние 10 минут и двухфакторный вход, если он включён. Вход через внешние сервисы и пропуск входа в локальной сети не считаются. Решение: подтвердите паролем. Выход и завершение сеансов на устройствах подтверждения не требуют.

Признак проблемы: обратный вызов завершился короткой ошибкой, и вы не вошли. Причина: адрес обратного вызова у провайдера не совпадает с адресом в HolyArrs. Решение: скопируйте Callback address ещё раз и вставьте у провайдера без изменений.

Признак проблемы: учётной записи, созданной через единый вход, нельзя задать пароль. Причина: в этой версии это невозможно. Решение: сначала создайте локального Владельца, затем свяжите с ним единый вход.

Признак проблемы: вы вышли из HolyArrs, но у провайдера вход остался. Причина: HolyArrs завершает только собственный вход. Решение: на общем устройстве выйдите и у провайдера.

Потеряли пароль Владельца? См. Сеансы и пароли.

Вход через доверенный прокси

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

  • Прокси убирает входящие Remote-User и Remote-Name и после входа выставляет свои.
  • Remote-User: одно постоянное имя, не больше 255 байт. Remote-Name: необязательное отображаемое имя, не больше 200 байт.
  • Значения с повторами, с запятыми или с управляющими символами отклоняются. Заголовки с ролями игнорируются.

Оставьте HolyArrs доступным только через этот прокси. Доверять адресу прокси — значит доверять каждому имени, которое он присылает. Свяжите его с учётной записью в My account > Link trusted proxy sign-in (связать вход через доверенный прокси).

Переменные окружения

Задайте их до запуска. Оба способа выключены, пока их не включить. С ошибкой в настройке HolyArrs не запустится; при сбое провайдера вход по паролю продолжает работать. Если HOLYARRS_OIDC_ENABLED задана вообще, пусть даже как false, единым входом управляет окружение, а Настройки его только показывают.

Переменная Что делает По умолчанию
HOLYARRS_OIDC_ENABLED Включает единый вход false
HOLYARRS_OIDC_ISSUER Точный HTTPS-issuer провайдера нет
HOLYARRS_OIDC_CLIENT_ID Зарегистрированный client id нет
HOLYARRS_OIDC_CLIENT_SECRET_FILE Файл с client secret, не больше 4096 байт. Для публичного клиента не указывайте нет
HOLYARRS_OIDC_REDIRECT_URL Точный HTTPS-адрес обратного вызова: ваш адрес, URL base, если есть, затем /api/v1/auth/oidc/callback нет
HOLYARRS_OIDC_ALLOW_JOIN Новые люди становятся Участниками, которые могут только запрашивать false
HOLYARRS_OIDC_ALLOW_LOCAL_NETWORK Разрешает провайдера в вашей частной сети false
HOLYARRS_OIDC_ALLOW_LOOPBACK_HTTP Разрешает обычный HTTP на loopback, для тестов false
HOLYARRS_FORWARD_AUTH_ENABLED Включает вход через доверенный прокси false
HOLYARRS_FORWARD_AUTH_ISSUER Постоянное HTTPS-имя этого прокси. Новое значение считается новым источником входа нет
HOLYARRS_FORWARD_AUTH_TRUSTED_PEERS Адреса или диапазоны прокси через запятую. Обязательно. Диапазон из всех адресов отклоняется нет
HOLYARRS_FORWARD_AUTH_ALLOW_JOIN Новые имена от прокси становятся Участниками, которые могут только запрашивать false

Две настройки, ALLOW_LOCAL_NETWORK и ALLOW_LOOPBACK_HTTP, действуют и для единого входа, настроенного в Настройках.

Как работает единый вход
  • Провайдер должен поддерживать вход по коду авторизации с PKCE S256 и токенами RS256, а все его конечные точки должны быть на origin того же issuer.
  • Учётные записи сопоставляются по идентификатору учётной записи у провайдера, никогда по электронной почте.
  • Роли и группы провайдера не используются.
  • Client secret хранится зашифрованным и больше не показывается. Оставьте поле пустым, чтобы его сохранить.

HolyArrs бесплатен. Если он сэкономил вам время, поставьте звезду на GitHub, станьте спонсором или угостите меня кофе.