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

Блог

Как отдать аккаунты подрядчику и не отдавать пароли

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

Команда ARMANOS7 мин

Что вы отдаёте вместе с паролем

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

Площадка при этом видит не подрядчика, а вас. Два входа в один аккаунт из двух городов за сутки это та самая картина, после которой аккаунт уходит на проверку, и объяснить её площадке нечем.

  1. 1

    Ключ от аккаунта

    Пароль открывает аккаунт целиком, а не ту часть, которая нужна для работы.

  2. 2

    Ключ от возврата

    Тот же пароль часто стоит и на почте восстановления, и тогда возврат аккаунта уходит из ваших рук.

  3. 3

    Ключ без срока

    Отправленный пароль живёт в переписке, пока вы его не смените, а смена выбивает из аккаунта всех.

Подрядчик заходит под своим именем

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

Одно место всегда занимает владелец, поэтому коллег считайте с себя. Место сверх тарифа стоит 3 доллара в месяц, код приглашения живёт 7 дней, и отозвать его можно до того, как человек вошёл. Тариф даёт места пакетом, а дополнительные считаются поштучно.

ТарифМест в команде
Free1
Professional1
Business3
Enterprise20

Приглашение работает один раз

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

Принятый код второй раз не работает: у приглашения есть отметка о принятии, и с ней оно считается использованным, сколько бы дней из семи ни оставалось. Отозвать можно только непринятое приглашение, а принятое снимается уже исключением человека из команды.

Один человек может состоять в нескольких командах, и своё пространство у него при этом остаётся. Тот, кто уже в вашей команде, второй раз по коду не вступит, и сервер скажет об этом прямо.

Пять ролей и где каждая упирается

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

Подрядчику на три аккаунта хватает нижней ступени. Она даёт работать с отданными профилями и упирается в оплату, в состав команды и в «Историю», а ещё в общие группы и библиотеку прокси.

РольЧто открываетГде упирается
ВладелецВсё пространство: оплата, команда, историяИсключить или посадить на группы нельзя
АдминистраторОплата и тариф, приглашения, роли, доступ к группам, историяВладельца он не тронет
МенеджерГруппы, библиотека прокси, сценарии, расписания, смена адресаНи оплаты, ни команды, ни истории
ОператорСвои профили и те, что ему отдалиНи библиотеки прокси, ни групп, ни расписаний
УчастникТо же, что у оператораТам же, где оператор

Что добавляет каждая ступень

Две нижние роли, оператор и участник, равны между собой по рангу: обе работают с отданными профилями и ничего общего не меняют. Менеджер сверх этого заводит, правит и удаляет общие рабочие вещи: группы и библиотеку прокси, а денег и команды не касается. Подрядчику на три аккаунта эта ступень не нужна.

Администратор добавляет оплату, состав команды, историю, чужие профили и привязанные устройства. Владелец открывает всё и единственный, кого исключить нельзя.

СтупеньЧто добавляет к нижней
Оператор и участникработа с отданными профилями
Менеджергруппы и библиотека прокси
Администратороплата, команда, история, чужие профили и устройства
Владелецвсё, и его нельзя исключить

Группы сажают человека на одного клиента

Роль действует на всё пространство разом, поэтому ею одной не сказать «этот человек ведёт только клиента А». Это делают группы: вы отмечаете те, что ему видны, и его список сжимается до них, а остальные профили для него перестают существовать.

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

Профиль уезжает, а пароль остаётся

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

Пароля от аккаунта среди этого нет. У профиля на сервере нет столбца ни под куки, ни под пару входа, ни под ключ одноразовых кодов, а тело запроса с такими полями сервер отклонит целиком, а не выбросит лишнее поле по-тихому.

  1. 1

    Едет машина

    Отпечаток, версия браузера, прокси и настройки достаются тому, кому вы профиль открыли.

  2. 2

    Не едет вход

    Пары логина с паролем и ключа одноразовых кодов на сервере нет вовсе.

  3. 3

    Доступ снимается

    Снимите доступ, и профиль пропадёт из его программы при ближайшей сверке.

Одно окно на один аккаунт

Двое, открывшие один профиль разом, дают площадке две живые сессии одного аккаунта из двух мест, и это худшее, что можно показать площадке за один день. Ваши машины друг друга не видят, поэтому на профиле стоит один замок для всех. Замок живёт на сервере: пока программа не вошла в аккаунт, она его не спрашивает и профиль открывает, потому что без входа спрашивать некого.

Держит его время, а не обещание: пока окно открыто, программа продлевает замок раз в минуту. Выдерните шнур из розетки, и через 3 минуты профиль откроется снова, без звонка администратору.

Что остаётся после расставания

Действие, о котором могут спорить, оставляет одну строку: кто, что, когда и в каком пространстве. Видов таких действий 58, и 6 про команду: приглашение, его отзыв, вход, смена роли, доступ к группам, уход. Эти строки на экране «История» читают администратор и владелец.

Уход из команды снимает доступ сразу в обе стороны. Замок, который он держал, снят, второе приглашение на тот же адрес больше не работает, а рабочие профили и ваши прокси остаются у вас. Место в команде освобождается тем же ходом.

Четыре дороги и цена каждой

Дорог четыре, и выбор между ними это выбор, чем вы рискуете. Таблица ниже называет цену каждой одной строкой, и ни одна из четырёх не бесплатна.

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

ДорогаЧто уходит из ваших рук
Пароль в перепискеАккаунт целиком и навсегда
Место, роль и группаРовно то, что вы отметили
Общий доступ к профилюМашина и настройки, без пары входа
Файл профиля с сессиейЖивая сессия и сохранённая пара входа

Чего это не утверждает

  • Это не утверждает, что подрядчик никогда не увидит пароль. Сессию с открытым аккаунтом возит зашифрованный файл, и в нём же едут сохранённая пара входа и ключ одноразовых кодов.
  • Снятие доступа не стирает то, что уже легло на чужой диск. Профиль пропадает из его программы, а куки, записанные за время работы, остаются у него.
  • Роль действует на всё пространство. Сделать человека старшим над одной группой и рядовым над другой нельзя: группы сужают видимое, а не права роли.
  • Ни один браузер не чинит поведение. Одинаковые тексты, одна карта оплаты и один распорядок дня связывают аккаунты помимо ролей и групп.

Где это можно увидеть самому

Каждое число выше выходит из кода, который можно открыть и запустить.

Пять ролей и их лестница
apps/server/src/common/roles/workspace-roles.ts
Группы сужают видимое, и это проверено на живом сервере
apps/server/test/group-access.js
Куки и пару входа сервер отвергает целиком
apps/server/test/куки-и-входы-сервер-не-примет.js
Уход из команды снимает доступ в обе стороны
apps/server/test/team-money-seats.js
Одно окно на профиль, перехват только у держателя
apps/desktop/test/profile-busy.js
Пара входа не уезжает на сервер, и это проверено в живом браузере
apps/desktop/test/login-stays-local.js
Одноразовые коды сходятся с эталонами стандарта
apps/desktop/src/lib/totp.js · apps/desktop/test/totp.js

Вопросы

Можно дать доступ, не заводя человеку учётную запись?
Нет. Приглашение выписывается на адрес с уже заведённой записью, и это единственная преграда против постороннего, которому переслали код.
Подрядчик увидит мои остальные аккаунты?
Увидит, если вы не отметили ему группы. Пустой список означает не «ничего не видно», а «ограничения нет». Окно говорит это прямо: при пустом выборе в нём стоит строка «Ничего не выбрано: человек видит все группы».
Как он будет проходить двухфакторную проверку?
Ключ 2FA из окна «Одноразовый код» на сервер не уезжает, поэтому общий доступ к профилю его не передаёт. Код считает та машина, где лежит ключ: назовите код сами или отдайте профиль файлом.
Что будет с аккаунтами, когда мы расстанемся?
Доступ уходит в обе стороны в тот же миг, замок снят, второе приглашение на тот же адрес больше не работает. Куки, уже записанные на его диск, остаются у него.
Сколько стоит посадить в команду трёх подрядчиков?
Считайте с себя: одно место всегда за владельцем. На тарифе с тремя местами двое коллег входят без доплаты, каждый следующий стоит 3 доллара в месяц.

Посмотрите, что отвечает ваш браузер

Проверка читает 12 значений прямо в вашем браузере и никуда их не отправляет.