Аутентификация
Rediacc поддерживает несколько методов аутентификации:
- Пароль: Традиционный вход с помощью email и пароля
- Magic Link: Вход без пароля через ссылку в email (срок действия 15 минут)
- Двухфакторная аутентификация (2FA): На основе TOTP с резервными кодами
При включенной 2FA для входа требуется как пароль (или Magic Link), так и 6-значный код TOTP.
API-токены
API-токены аутентифицируют операции между машинами (активация лицензий CLI, проверки статуса).
Области действия:
license:read— Запрос статуса подписки и лицензииlicense:activate— Активация машин и выдача лицензий репозиториевsubscription:read— Чтение деталей подписки
Функции безопасности:
- Привязка к IP: токен действует только с IP-адреса своего первого запроса; для нового адреса нужна проверка TOTP или повторный вход (см. ниже)
- Ограничение по команде: токены можно ограничить определенной командой
- Автоматический отзыв: токены отзываются при удалении создателя из организации
Создание токена:
# Via the portal: API Tokens > Create
# Token value is shown once -- save it securely
Когда меняется IP-адрес
Токен, привязанный к одному IP-адресу, отклоняется с любого другого, например когда провайдер выдает новый адрес. CLI сама переносит привязку:
- Интерактивный терминал, 2FA включена: CLI запрашивает 6-значный код из приложения-аутентификатора, переносит токен на новый адрес и повторяет команду. Резервные коды для переноса не принимаются.
- Скрипты и CI (без терминала): команда завершается ошибкой и называет оба решения: один раз выполнить любую команду
rdcв интерактивном терминале (например,rdc subscription status) и ввести код или выполнитьrdc subscription login. - 2FA выключена: перенести токен нельзя.
rdc subscription loginвыдает новый, а при включенной 2FA для следующего переноса достаточно кода. - Неверные коды: 5 неверных кодов за 15 минут блокируют перенос, сначала на 5 минут, затем каждый раз вдвое дольше, но не больше 1 часа. После 4 блокировок перенос для этого токена отключается до следующего
rdc subscription login. - Токены executor с привязкой к IP
unboundилиcloudflareэто не затрагивает.
Каждый перенос отображается в журнале активности портала со старым и новым адресом.
Поток кода устройства
CLI может аутентифицироваться на безголовых машинах с помощью потока кода устройства:
rdc subscription login
# Displays: Enter code XXXX-XXXX-XX at https://www.rediacc.com/account/authorize
# After approval, CLI receives credentials automatically
Привязка конфигурации к Config Storage использует отдельный запрос, который тоже проходит через сервер аккаунта. Он привязан к аккаунту, под которым выполнен вход в CLI, ссылка хранит свои секреты после #, чтобы они не попадали в журналы сервера, а пользователь вводит на странице подтверждения код сопряжения из терминала. Запрос действует 10 минут.
Config Storage
Для зашифрованной конфигурации с серверной синхронизацией см. Config Storage — полное руководство. Config Storage использует:
- Шифрование с нулевым разглашением (сервер никогда не видит открытый текст)
- Деривацию ключей на основе passkey (WebAuthn + PRF)
- Ротируемые токены с ротацией при каждом запросе
Безопасность сессий
| Тип токена | Срок действия | Хранение | Обновление |
|---|---|---|---|
| Access Token (JWT) | 15 минут | HttpOnly cookie | Автоматически через refresh token |
| Refresh Token | 7 дней | HttpOnly cookie | Ротация при каждом использовании |
| Elevated Session | 10 минут | На стороне сервера | Запускается повторной аутентификацией |
Повышенные сессии требуются для чувствительных операций: смена пароля, смена email, настройка 2FA, передача владения и деструктивные действия администратора.
Модель разрешений
Rediacc использует три независимых уровня разрешений:
Уровень 1: Системная роль — Определяет доступ к конечным точкам системного администрирования.
Уровень 2: Роль организации — Контролирует, что пользователь может делать внутри своей организации (owner, admin, member).
Уровень 3: Роль команды — Ограничивает доступ к ресурсам конкретной команды (team_admin, member). Владельцы и администраторы организации обходят проверки роли команды.
Каждый API-запрос проходит через все применимые уровни последовательно. Запрос к конечной точке с ограничением по команде должен удовлетворять аутентификации сессии, членству в организации и доступу к команде.
Каналы обновлений
CLI поддерживает два канала выпуска:
- stable (по умолчанию): Продвигается из edge после 7-дневного периода выдержки; выберите этот канал для консервативного темпа обновлений
- edge: Последние функции, обновляется с каждым выпуском
rdc update --channel edge # Switch to edge
rdc update --channel stable # Switch back to stable
rdc update --status # Show current channel
Безопасность CLI для AI-агентов
AI-агенты, вызывающие rdc, являются реальной поверхностью угроз, поэтому мы относимся к ним как к отдельному принципалу. Каждый вызов rdc классифицируется при запуске как человеческий или агентский на основе переменных окружения (CLAUDECODE, GEMINI_CLI, COPILOT_CLI, CURSOR_TRACE_ID, REDIACC_AGENT) плюс обхода родительского дерева процессов через Linux /proc. Обнаружение выполняется по возможности. Целенаправленная обёртка может подделать переменные окружения, именно поэтому важен обход дерева процессов. Агенты получают сокращённый набор прав: чувствительные мутации конфигурации требуют гейта знания (--current <old>), интерактивный редактор отклоняется без подтверждённого через дерево процессов переопределения REDIACC_ALLOW_CONFIG_EDIT, а --reveal для любой команды отображения заблокирован. Каждое решение (разрешить, отклонить или предоставить --reveal) записывает одну строку в хеш-цепочке JSONL в ~/.config/rediacc/audit.log.jsonl. Запустите rdc config audit verify для проверки целостности цепочки.
Смотрите AI Agent Safety & Guardrails для полной матрицы того, что агенты могут и не могут делать, примеров работы гейта знания и механики переопределения области.