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

Доступ к SimpleTwo

Актуально для: directory 0.35, directory 0.61 · Проверено: 10.10.2026

directory — каталог организации. В нём бывают тысячи учётных записей, которым SimpleTwo не нужен: подрядчики, служебные ящики, сотрудники, которые пользуются только корпоративными приложениями через вход directory. Такая учётная запись входит в портал /me и в сторонние приложения (OIDC, SAML, LDAP), но в сервисы SimpleTwo попадает, только когда ей назначен доступ.

Функции​

Доступ назначается по функциям:

ФункцияЧто даётКто готовит
Чат и звонкимессенджер, звонки, встречиmessaging
Календарь и адресные книгикалендари, приглашения, личные книгиcalendar
Почтаящик, адреса, JMAP и SMTPmail
Дискфайлыdrive
Телефониявнутренний номер и выход в городкоординатор
Secure Access (VPN)туннель приложения SimpleTwo Connect: маршрутизация и шлюзы по профилю группкоординатор

Функцию назначают человеку или группе directory — в том числе динамической, по правилу. У человека есть функция, если её даёт хотя бы одно назначение: своё, любой его группы или вариант «всем» (ниже). Ушёл из группы — функция остаётся, если её дают другие назначения.

Гости, боты, помещения и системные учётные записи принадлежат координатору. Им доступ не назначают: они попадают в SimpleTwo как раньше. Исключение — гость, приглашённый через directory в режиме identity: приглашение несёт его функции, по умолчанию чат и звонки (Гости и боты в directory).

Состояние подготовки​

Когда человек получает функцию, сервис готовит для него своё — ящик, календарь, учётную запись в чате — и сообщает directory результат. У каждой функции человека есть состояние:

  • ожидает — назначено, сервис ещё не ответил;
  • готово — сервис всё подготовил; только с этого момента токен платформы открывает этот сервис;
  • ошибка — последняя попытка не удалась, причина показана рядом;
  • отзывается — назначения больше нет; сервис удаляет данные по своим срокам хранения и сообщает, когда закончил.

Календарь​

С directory 0.58.0 календарь назначений directory не читает и ни о чём ей не сообщает: календарь и адресная книга есть у каждого человека и создаются шагами задач координатора («Текущие задачи»), а не самой службой. Создание пользователя создаёт ему календарь по умолчанию и личную адресную книгу «Contacts» (переговорке — её календарь бронирований), блокировка закрывает человеку календарь и книги (всё хранится), разблокировка открывает. Удаление пользователя и отзыв календаря сразу закрывают доступ, а через 30 дней (параметр роли календаря «Keep withdrawn», переменная DIR_CAL_DEPROVISION_RETENTION_DAYS) служба удаляет его календари с записями, адресные книги, приглашения, профиль и ссылки; встречи, которые он созывал, исчезают у участников как отменённые. Если человека вернули раньше срока, всё открывается снова как было.

Человек, которому календарь не создан, получает отказ «календаря у учётной записи ещё нет»; приглашение такого человека на встречу не сохраняется и называет его — служба больше не создаёт календарь сама при первом приглашении или входе. Недостающее создаёт системная сверка координатора. Состояние видно в /healthz службы, в поле lifecycle: сколько людей открыто, заблокировано, отозвано, удалено и очищено. Назначение и состояние функции «Календарь и адресные книги» здесь, в directory, на календарь больше не влияют.

Secure Access​

С directory 0.61.0 и координатором 0.9.x VPN — тоже функция (secure_access). Подготовка — шаг задачи координатора: «Выдать Secure Access» ставит в учётной записи человека отметку, что Secure Access выдан, — и только её. Маршрутизация и разрешённые шлюзы по-прежнему берутся из профиля маршрутизации, привязанного к группам и ролям; изменения групп и профилей действуют сразу. Блокировка приостанавливает отметку, разблокировка возобновляет, отзыв функции снимает отметку и сразу закрывает туннели человека, удаление пользователя уносит отметку вместе с учётной записью. Недостающие отметки ставит системная сверка координатора.

Без отметки приложение не получает ни правил, ни сессии туннеля: координатор отвечает 403 с кодом secure_access_not_provisioned, и приложение пишет «Secure Access вам не выдан — обратитесь к администратору». Гостям координатора отметка ставится при создании (их VPN определяют роль и группы), ботам и переговорным VPN не нужен.

Выкат. В день, когда каталог впервые узнаёт функцию, он один раз сам выдаёт её всем, кто попадает в SimpleTwo: включает «Всем — Secure Access» (Политики → «Доступ к SimpleTwo»), если режим выключен или «всем» уже что-то даёт, а при включённом режиме с пустым «всем» — назначает функцию напрямую каждой учётной записи, у которой есть хоть одна функция. Поэтому ни у кого из работающих VPN не пропадает. Чтобы выдавать VPN группами, снимите флажок и назначьте функцию группам. Координатор, работающий с каталогом старше 0.61.0 (функции он не знает), считает, что Secure Access есть у всех.

Личный профиль туннеля (uTLS, QUIC, DNS, MTU — уровень «пользователь») теперь хранится в учётной записи: виден и правится в карточке человека в консоли координатора («Secure Access» в окне правки) и удаляется вместе с ней. Общий, групповые и профили устройств — как раньше.

Чат и звонки​

Служба сообщений читает назначения функции «Чат и звонки» так же, примерно раз в полминуты. Получив назначение, она заводит человеку учётную запись в чате (если координатор её ещё не передал) и добавляет его в беседы по умолчанию тех групп, в которых он состоит, затем сообщает «готово» или «ошибка» с причиной. Когда назначение снимают при включённом режиме, человек отключается сразу: приложение больше не пускает его в чат и звонки, открытые соединения закрываются, уведомления на его телефоны больше не приходят, а из поиска экспертов он пропадает. Данные при этом хранятся. Через 30 дней (параметр роли сообщений «Keep withdrawn», переменная MSG_DEPROVISION_RETENTION_DAYS) служба удаляет то, что служило только ему: личных ботов и ассистентов, регистрации телефонов, контакты, блокировки, подписки на присутствие, черновики, «Избранное» и участие в группах, каналах и чатах встреч. Группы и каналы, где он владелец, за ним остаются, пока администратор не передаст их другому. Переписка один на один с коллегами и его сообщения и файлы в беседах остаются — это история беседы, у неё свой срок хранения (MSG_RETENTION_DAYS). Только после этого функция уходит из «отзывается». Если назначение вернули раньше срока, человек снова входит в чат, а телефон регистрируется для уведомлений при следующем входе. Пока режим выключен, служба никого не отключает и ничего не удаляет; при включении отсчёт 30 дней начинается заново. Состояние видно в /healthz службы, в поле provisioning.

Где это в консоли​

В консоли:

  • Пользователи → Люди → человек → «Доступ к SimpleTwo» — все функции: есть ли, откуда (напрямую, через группу, всем), состояние, ошибка. Кнопки «Назначить» и «Отозвать» управляют прямым назначением. Внизу — какие сервисы открывает токен платформы этого человека.
  • Пользователи → Группы → «Доступ к SimpleTwo» — флажки функций, назначенных группе.
  • Безопасность → Требования ко входу → «Доступ к SimpleTwo» — переключатель, вариант «всем» и счётчики по состояниям.

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

Переключатель​

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

После включения:

  • координатор показывает в каталоге и заводит у себя только учётные записи, которым что-то назначено;
  • токен платформы открывает directory, координатор и только те сервисы, где функция в состоянии «готово»;
  • у людей, которым ничего не назначено, сообщения и календарь переходят в «отзывается»: в выключенном режиме эти сервисы обслуживали всех, поэтому данные у них могут быть.

Миграция: «всем — сообщения и календарь»​

Флажок «Всем — сообщения и календарь» даёт каждому человеку чат, звонки, календарь и адресные книги без отдельных назначений. Порядок для действующей установки:

  1. Отметить флажок и сохранить, не включая режим.
  2. Назначить почту, диск и телефонию группам, которым они нужны.
  3. Включить режим. Ни у кого ничего не пропадёт.
  4. Позже снять флажок и перейти на назначения группам.

Что координатор делает с учётными записями без назначений​

Учётную запись, у которой назначений не осталось, координатор убирает из своего каталога не сразу, а после срока ожидания (по умолчанию 14 дней, настраивается). И только если данных человека нигде нет:

  • он ни разу не входил и не получал ролей в консоли координатора, за ним нет гостей;
  • ни один сервис не держит его данных: нет функции в состоянии «готово», «ошибка» или «отзывается».

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

Для разработчиков сервисов​

  • GET /v1/provisioning/feed?since=&limit=&feature= — строки по курсору, старые первыми: seq, feature, username, assigned, state, changed_at, а также mode. Читает любой сервис по служебному токену.
  • POST /v1/provisioning/{feature}/{username}/state с телом {seq, state, error} — ответ сервиса-владельца функции: active, failed (с причиной) или deprovisioned. Ответ на устаревший seq отклоняется с кодом 409.