Делегированные ящики

Делегированный ящик — ящик, к которому настроены права доступа для других сотрудников. Это может быть полезно, если, например, сотрудник уходит в отпуск и нужно отвечать клиентам от его имени.

Делегировать можно только ящики, аккаунты владельцев которых созданы на домене организации.

Процесс делегирования

Все операции с делегированными ящиками пока доступны только с API.

Шаг 1. Подготовьтесь к работе с API

  1. Для работы с API вам потребуется OAuth-токен, который можно получить после создания приложения в сервисе Яндекс OAuth.

    • Если у вас еще нет OAuth-приложения, то для его создания и получения токена воспользуйтесь инструкцией на странице Доступ к API. При создании приложения выберите права ya360_admin:mail_read_shared_mailbox_inventory и ya360_admin:mail_write_shared_mailbox_inventory.
    • Если у вас уже есть OAuth-приложение для работы с API Яндекс 360 для бизнеса, то добавьте ему права на просмотр и изменение настроек доступа к почтовым ящикам, а затем получите новый OAuth-токен по инструкции.
  2. Соберите данные, которые потребуются для API-запросов.

    1. Определите идентификатор организации: откройте admin.yandex.ru и выберите Общие настройки → Профиль организации. Идентификатор будет написан под названием организации.

    2. Определите идентификатор сотрудника, которому нужно предоставить доступ. Чтобы определить идентификатор:

      1. Выберите Пользователи → Сотрудники.

      2. Найдите строчку нужного сотрудника и нажмите на его имя.

      3. Правой кнопкой нажмите на логин сотрудника и скопируйте адрес ссылки.

      4. Вставьте адрес в любой текстовый редактор. Идентификатор — это часть адреса после uid=. Например, из адреса

        https://staff.yandex.ru/bb?org_id=5487632&uid=2260000054273165
        

        получится идентификатор 2260000054273165.

        А можно ли определить идентификаторы сотрудников тоже по API?

        Конечно. Есть запрос, который возвращает их список. Посмотреть документацию

Шаг 2. Включите для ящика возможность его делегирования

Примечание

Количество делегированных ящиков в организации ограничено. О существующих ограничениях читайте в разделе Лимиты на странице Совместный доступ.

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

  1. Подготовьте файл с именем resource.json, который будет содержать данные для запроса. Это можно сделать в любом текстовом редакторе. В файле укажите идентификатор владельца ящика, для которого надо включить возможность делегирования, в следующем формате:

    {
       "resourceId": "{ВЛАДЕЛЕЦ}"
    }
    

    где {ВЛАДЕЛЕЦ} — идентификатор владельца делегируемого ящика, полученный по инструкции «Подготовка к работе с API» на шаге 2.2.

  2. С помощью запроса к API включите делегирование ящика:

    • HTTP-метод: PUT

    • URL запроса:

      https://api360.yandex.net/admin/v1/org/{ОРГАНИЗАЦИЯ}/mailboxes/delegated
      

      где {ОРГАНИЗАЦИЯ} — идентификатор организации, полученный по инструкции «Подготовка к работе с API» на шаге 2.1.

      Пример
      https://api360.yandex.net/admin/v1/org/1234567/mailboxes/delegated
      
    • Заголовки:

      Authorization: OAuth {OAUTH-ТОКЕН}
      Content-Type: application/json
      

      где {OAUTH-ТОКЕН} — OAuth-токен, полученный по инструкции «Подготовка к работе с API» на шаге 1.

    • Тело запроса: содержится в файле resource.json, созданном на шаге 1 данной инструкции.

    Если вы работаете на Windows, то отправить запрос на включение возможности делегирования ящика можно с помощью команды curl такого вида:

    curl -X PUT -H "Authorization: OAuth {OAUTH-ТОКЕН}" -H "Content-Type: application/json" -d "@resource.json" https://api360.yandex.net/admin/v1/org/{ОРГАНИЗАЦИЯ}/mailboxes/delegated
    

    где
    {OAUTH-ТОКЕН} — OAuth-токен, полученный по инструкции «Подготовка к работе с API» на шаге 1;
    resource.json — файл с телом запроса, созданный на шаге 1 данной инструкции;
    {ОРГАНИЗАЦИЯ} — идентификатор организации, полученный по инструкции «Подготовка к работе с API» на шаге 2.1.

    Я не понимаю, как это сделать
    1. Подготовьте команду: скопируйте пример в любой редактор, вставьте в указанные места токен и идентификаторы.

    2. Откройте папку, в которой лежит файл resource.json.

    3. Нажмите на пустое место в адресной строке.

    4. Напишите туда cmd и нажмите клавишу Enter.

    5. Откроется окно «Командная строка». Вставьте в него готовую команду и нажмите Enter.

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

Шаг 3. Предоставьте доступ к ящику

Чтобы к почтовому ящику можно было настроить доступ других сотрудников, сначала нужно включить возможность его делегирования.

Групповые операции на предоставление доступов пока не поддерживаются. За один запрос можно предоставить, изменить или удалить право доступа только для одного сотрудника к одному почтовому ящику. Но вы можете одновременно направить несколько таких запросов.

  1. Подготовьте файл с именем roles.json, который будет содержать данные для запроса. Это можно сделать в любом текстовом редакторе. В файле укажите роли сотрудника, которому открывается доступ к ящику. Описание ролей приведено в разделе Роли и права доступа.

    Пример файла roles.json:

    {
       "roles": [
          "shared_mailbox_imap_admin",
          "shared_mailbox_half_sender"
       ]
    }
    

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

  2. С помощью запроса к API предоставьте доступ сотрудникам к делегированному ящику:

    • HTTP-метод: POST

    • URL запроса:

      https://api360.yandex.net/admin/v1/org/{ОРГАНИЗАЦИЯ}/mailboxes/set/{ВЛАДЕЛЕЦ}?actorId={СОТРУДНИК С ДОСТУПОМ}&notify={ПАРАМЕТР ОТПРАВКИ УВЕДОМЛЕНИЙ}
      

      где
      {ОРГАНИЗАЦИЯ} — идентификатор организации, полученный по инструкции «Подготовка к работе с API» на шаге 2.1;
      {ВЛАДЕЛЕЦ} — идентификатор владельца ящика, полученный по инструкции «Подготовка к работе с API» на шаге 2.2;
      {СОТРУДНИК С ДОСТУПОМ} — идентификатор сотрудника, которому нужно предоставить доступ к ящику, полученный по инструкции «Подготовка к работе с API» на шаге 2.2;
      {ПАРАМЕТР ОТПРАВКИ УВЕДОМЛЕНИЙ} — параметр, который определяет, кому необходимо отправить письмо-уведомление об изменении прав доступа к ящику. Возможные значения: all, delegates, none. Описание значений параметра приведены в разделе Уведомления.

      Пример
      https://api360.yandex.net/admin/v1/org/1234567/mailboxes/mailboxes/set/2260000054273165?actorId=3340000075421587&notify=all
      
    • Заголовки:

      Authorization: OAuth {OAUTH-ТОКЕН}
      Content-Type: application/json
      

      где {OAUTH-ТОКЕН} — OAuth-токен, полученный по инструкции «Подготовка к работе с API» на шаге 1.

    • Тело запроса: содержится в файле roles.json, созданном на шаге 1 данной инструкции.

    Если вы работаете на Windows, то отправить запрос на предоставление доступа ящика можно с помощью команды curl такого вида:

    curl -X POST -H "Authorization: OAuth {OAUTH-ТОКЕН}" -H "Content-Type: application/json" -d "@roles.json" https://api360.yandex.net/admin/v1/org/{ОРГАНИЗАЦИЯ}/mailboxes/set/{ВЛАДЕЛЕЦ}?actorId={СОТРУДНИК С ДОСТУПОМ}&notify={ПАРАМЕТР ОТПРАВКИ УВЕДОМЛЕНИЙ}
    

    где
    {OAUTH-ТОКЕН} — OAuth-токен, полученный по инструкции «Подготовка к работе с API на шаге 1;
    roles.json — файл с телом запроса, созданный на шаге 1 данной инструкции;
    {ОРГАНИЗАЦИЯ} — идентификатор организации, полученный по инструкции «Подготовка к работе с API на шаге 2.1;
    {ВЛАДЕЛЕЦ} — идентификатор владельца ящика, полученный по инструкции «Подготовка к работе с API на шаге 2.2;
    {СОТРУДНИК С ДОСТУПОМ} — идентификатор сотрудника, которому нужно предоставить доступ к ящику, полученный по инструкции «Подготовка к работе с API на шаге 2.2;
    {ПАРАМЕТР ОТПРАВКИ УВЕДОМЛЕНИЙ} — параметр, который определяет, кому необходимо отправить письмо-уведомление об изменении прав доступа к ящику. Возможные значения: all, delegates, none. Описание значений параметра приведены в разделе Уведомления.

  3. Проанализируйте полученный ответ: в случае успешного выполнения запроса в ответе вы получите статус 200 OK и идентификатор задачи на изменение прав. Сохраните полученный идентификатор.

  4. Чтобы убедиться, что доступ предоставлен, выполните еще один запрос, подставив в него идентификатор задачи:

    curl -X GET -H "Authorization: OAuth {OAUTH-ТОКЕН}" https://api360.yandex.net/admin/v1/org/{ОРГАНИЗАЦИЯ}/mailboxes/tasks/{ID ЗАДАЧИ}
    

    В ответ вы получите статус задачи на изменение прав. Права успешно изменены, если в ответе пришло значение complete.

Шаг 4. Помогите сотрудникам с настройкой почты

Инструкция по настройке почтовых клиентов содержится в разделе Совместный доступ к ящикам в почтовых программах.

Изменение права доступа к ящику

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

Отключение от делегированного ящика

Отключить доступ к ящику

Чтобы отключить доступ к ящику конкретному сотруднику, выполните пункты инструкции по предоставлению доступа, только в файле с перечнем доступных ролей roles.json укажите пустой список:

   {
      "roles": []
   }

Когда вы отзываете доступ у одного сотрудника, ящик продолжает считаться делегированным, даже если доступ к ящику остался только у его владельца. Чтобы ящик перестал быть делегированным, нужно выключить возможность его делегирования.

Выключить для ящика возможность его делегирования

Выключить возможность делегирования ящика можно с помощью DELETE-запроса:

curl -X DELETE -H "Authorization: OAuth {OAUTH-ТОКЕН}" https://api360.yandex.net/admin/v1/org/{ОРГАНИЗАЦИЯ}/mailboxes/delegated/{ВЛАДЕЛЕЦ}

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

Документация API

Полное описание всех методов для управления доступом вы найдете в документации.

Написать в службу поддержки