Search K
Восстановление доступа к аккаунту
Если вы потеряли доступ к SnapOtter (чаще всего из-за политики MFA, требования которой вы больше не можете выполнить), восстановить его можно изнутри контейнера, без клиента базы данных. Команды восстановления работают офлайн и требуют доступа к оболочке контейнера, что уже означает полный контроль над экземпляром.
С какой стеной я столкнулся?
Вход в SnapOtter применяет два независимых барьера MFA. Сначала выясните причину:
bash
docker exec -it snapotter snapotter-admin statusЭто выведет текущую политику MFA и то, у каких пользователей подключён TOTP.
- «Перед входом необходимо настроить MFA» (а вы никогда не настраивали приложение): политика требует MFA, но у вас нет подключения. Ослабьте политику.
- У вас запрашивают код, который вы не можете получить (потеряли телефон и резервные коды): ваш аккаунт подключён. Сбросьте это подключение.
Ослабьте политику MFA
bash
docker exec -it snapotter snapotter-admin reset-mfa-policyЭто вернёт политику к значению optional. Оно применится при следующем входе, без перезапуска. Команда всегда устанавливает только optional, поэтому она не включит принудительное требование обратно.
Сбросьте подключение TOTP одного пользователя
bash
docker exec -it snapotter snapotter-admin disable-mfa <username>Если политика по-прежнему требует MFA для этого пользователя, при следующем входе он упрётся в стену настройки, поэтому также выполните reset-mfa-policy, войдите и настройте заново в Настройках.
Старые образы и запасные варианты
На образе, собранном до появления обёртки snapotter-admin, вызовите скрипт напрямую:
bash
docker exec -w /app/apps/api snapotter ./node_modules/.bin/tsx \
src/scripts/mfa-recover.ts reset-mfa-policyВ крайнем случае на любой версии задайте политику в базе данных. В образе all-in-one Postgres работает внутри контейнера:
bash
docker exec -it snapotter psql -h 127.0.0.1 -U snapotter -d snapotter \
-c "UPDATE settings SET value = 'optional' WHERE key = 'mfaPolicy';"В конфигурации с несколькими контейнерами укажите psql на свой собственный DATABASE_URL.
Потеряли доступ к SSO, а не к MFA?
Если принудительный вход через SSO не срабатывает, воспользуйтесь резервным локальным аккаунтом: задайте ssoBreakGlassUsername для локального администратора в разделе Настройки > Безопасность, прежде чем вы включите принудительный SSO, и войдите с паролем этого аккаунта.
