Делегированные ящики
Делегированный ящик — ящик, к которому настроены права доступа для других сотрудников. Это может быть полезно, если, например, сотрудник уходит в отпуск и нужно отвечать клиентам от его имени.
Делегировать можно только ящики, аккаунты владельцев которых созданы на домене организации.
Процесс делегирования
Все операции с делегированными ящиками пока доступны только с API.
Шаг 1. Подготовьтесь к работе с API
-
Для работы с API вам потребуется OAuth-токен, который можно получить после создания приложения в сервисе Яндекс OAuth.
- Если у вас еще нет OAuth-приложения, то для его создания и получения токена воспользуйтесь инструкцией на странице Доступ к API. При создании приложения выберите права
ya360_admin:mail_read_shared_mailbox_inventory
иya360_admin:mail_write_shared_mailbox_inventory
. - Если у вас уже есть OAuth-приложение для работы с API Яндекс 360 для бизнеса, то добавьте ему права на просмотр и изменение настроек доступа к почтовым ящикам, а затем получите новый OAuth-токен по инструкции.
- Если у вас еще нет OAuth-приложения, то для его создания и получения токена воспользуйтесь инструкцией на странице Доступ к API. При создании приложения выберите права
-
Соберите данные, которые потребуются для API-запросов.
-
Определите идентификатор организации: откройте admin.yandex.ru и выберите Общие настройки → Профиль организации. Идентификатор будет написан под названием организации.
-
Определите идентификатор сотрудника, которому нужно предоставить доступ. Чтобы определить идентификатор:
-
Выберите Пользователи → Сотрудники.
-
Найдите строчку нужного сотрудника и нажмите на его имя.
-
Правой кнопкой нажмите на логин сотрудника и скопируйте адрес ссылки.
-
Вставьте адрес в любой текстовый редактор. Идентификатор — это часть адреса после
uid=
. Например, из адресаhttps://staff.yandex.ru/bb?org_id=5487632&uid=2260000054273165
получится идентификатор
2260000054273165
.А можно ли определить идентификаторы сотрудников тоже по API?
Конечно. Есть запрос, который возвращает их список. Посмотреть документацию
-
-
Шаг 2. Включите для ящика возможность его делегирования
Примечание
Количество делегированных ящиков в организации ограничено. О существующих ограничениях читайте в разделе Лимиты на странице Совместный доступ.
Когда вы включаете какому-либо ящику возможность делегирования, этот ящик считается делегированным, даже если к нему не настроен доступ других сотрудников. Когда совместный доступ к ящику больше не нужен, выключите возможность его делегирования, чтобы он не влиял на доступный лимит.
-
Подготовьте файл с именем resource.json, который будет содержать данные для запроса. Это можно сделать в любом текстовом редакторе. В файле укажите идентификатор владельца ящика, для которого надо включить возможность делегирования, в следующем формате:
{ "resourceId": "{ВЛАДЕЛЕЦ}" }
где
{ВЛАДЕЛЕЦ}
— идентификатор владельца делегируемого ящика, полученный по инструкции «Подготовка к работе с API» на шаге 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.Я не понимаю, как это сделать
-
Подготовьте команду: скопируйте пример в любой редактор, вставьте в указанные места токен и идентификаторы.
-
Откройте папку, в которой лежит файл resource.json.
-
Нажмите на пустое место в адресной строке.
-
Напишите туда
cmd
и нажмите клавишу Enter. -
Откроется окно «Командная строка». Вставьте в него готовую команду и нажмите Enter.
-
-
Проанализируйте полученный ответ: в случае успешного выполнения запроса в ответе вы получите статус
200 OK
с указанием идентификатора почтового ящика, возможность делегирования которого включена.
Шаг 3. Предоставьте доступ к ящику
Чтобы к почтовому ящику можно было настроить доступ других сотрудников, сначала нужно включить возможность его делегирования.
Групповые операции на предоставление доступов пока не поддерживаются. За один запрос можно предоставить, изменить или удалить право доступа только для одного сотрудника к одному почтовому ящику. Но вы можете одновременно направить несколько таких запросов.
-
Подготовьте файл с именем roles.json, который будет содержать данные для запроса. Это можно сделать в любом текстовом редакторе. В файле укажите роли сотрудника, которому открывается доступ к ящику. Описание ролей приведено в разделе Роли и права доступа.
Пример файла roles.json:
{ "roles": [ "shared_mailbox_imap_admin", "shared_mailbox_half_sender" ] }
В списке должна присутствовать одна из ролей
shared_mailbox_sender
либоshared_mailbox_owner
, потому что они отвечают за чтение почты. -
С помощью запроса к API предоставьте доступ сотрудникам к делегированному ящику:
-
HTTP-метод:
POST
-
URL запроса:
https://api360.yandex.net/admin/v1/org/{ОРГАНИЗАЦИЯ}/mailboxes/set/{ВЛАДЕЛЕЦ}?actorId={СОТРУДНИК С ДОСТУПОМ}¬ify={ПАРАМЕТР ОТПРАВКИ УВЕДОМЛЕНИЙ}
где
{ОРГАНИЗАЦИЯ}
— идентификатор организации, полученный по инструкции «Подготовка к работе с 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¬ify=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={СОТРУДНИК С ДОСТУПОМ}¬ify={ПАРАМЕТР ОТПРАВКИ УВЕДОМЛЕНИЙ}
где
{OAUTH-ТОКЕН}
— OAuth-токен, полученный по инструкции «Подготовка к работе с API на шаге 1;
roles.json
— файл с телом запроса, созданный на шаге 1 данной инструкции;
{ОРГАНИЗАЦИЯ}
— идентификатор организации, полученный по инструкции «Подготовка к работе с API на шаге 2.1;
{ВЛАДЕЛЕЦ}
— идентификатор владельца ящика, полученный по инструкции «Подготовка к работе с API на шаге 2.2;
{СОТРУДНИК С ДОСТУПОМ}
— идентификатор сотрудника, которому нужно предоставить доступ к ящику, полученный по инструкции «Подготовка к работе с API на шаге 2.2;
{ПАРАМЕТР ОТПРАВКИ УВЕДОМЛЕНИЙ}
— параметр, который определяет, кому необходимо отправить письмо-уведомление об изменении прав доступа к ящику. Возможные значения:all
,delegates
,none
. Описание значений параметра приведены в разделе Уведомления. -
-
Проанализируйте полученный ответ: в случае успешного выполнения запроса в ответе вы получите статус
200 OK
и идентификатор задачи на изменение прав. Сохраните полученный идентификатор. -
Чтобы убедиться, что доступ предоставлен, выполните еще один запрос, подставив в него идентификатор задачи:
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
Полное описание всех методов для управления доступом вы найдете в документации.
API — специальный механизм управления сервисами Яндекс 360, предназначенный прежде всего для автоматизации процессов. Есть два способа работать с API: создать специальное приложение (это может сделать разработчик) или использовать командную строку компьютера. Документация для разработчиков содержится в отдельной справке.
Специальный код, разрешающий доступ к данным от имени конкретного пользователя.
API запрос на создание нового ресурса на сервере. Используется для отправки данных на сервер для создания нового объекта или выполнения какого-либо действия.
API запрос на удаление существующего ресурса на сервере. Используется для удаления ресурса по его идентификатору или другому уникальному идентификатору.