Top.Mail.Ru
Центр помощи / Для администратора / 4. Интеграции / Синхронизация календарей / Подключение Microsoft Exchange через сервисный аккаунт

Подключение Microsoft Exchange через сервисный аккаунт

Подключение через сервисный аккаунт — новая схема интеграции UnSpot с Microsoft Exchange: вы один раз подключаете сервисную учётную запись с правом имперсонализации, и это подключение обслуживает все ресурсные календари переговорных. Делегировать права на каждый календарь и повторно авторизовывать пользователей не нужно. Классическая схема с делегированием прав по-прежнему работает — см. статьи «Права на ресурсный календарь Exchange» и «Подключение календаря Exchange к переговорной».

Как это работает

UnSpot подключается к серверу Exchange по протоколу EWS (Exchange Web Services) под сервисной учётной записью и работает с календарями переговорных через имперсонализацию: каждое обращение к календарю выполняется от имени ресурсного ящика нужной комнаты. Поэтому права не нужно делегировать на каждый календарь отдельно — достаточно один раз выдать сервисной учётной записи роль ApplicationImpersonation.

  • Авторизация на сервере — доменная (NTLM) по умолчанию; тумблер «Использовать базовую авторизацию (Basic Auth)» переключает подключение на Basic-аутентификацию, если ваш сервер принимает только её.
  • «Не проверять SSL-сертификат» отключает проверку сертификата сервера — включайте только для самоподписанных сертификатов; соединение при этом остаётся по HTTPS.
  • При сохранении подключения UnSpot проверяет, что сервисная учётная запись может авторизоваться на сервере и что механизм имперсонализации работает. Доступ к календарю конкретной переговорной проверяется позже — при подключении этого календаря UnSpot пытается создать в нём тестовое событие и сразу удаляет его.
  • Дальше синхронизация двусторонняя: брони из UnSpot создаются, обновляются и удаляются в календаре комнаты, а события, созданные в календаре напрямую (например, из Outlook), появляются в UnSpot — изменения приходят по push-подписке EWS, которую UnSpot оформляет при подключении календаря.
  • Подключений может быть несколько — например, для разных серверов Exchange. Пары «сервер + логин» и «сервер + email» должны быть уникальны: два подключения с одинаковым сервером и учётной записью создать нельзя.

Требования

  • Сервисная учётная запись Exchange, которой разрешена имперсонализация (роль ApplicationImpersonation) для ресурсных календарей переговорных. При сохранении подключения UnSpot проверяет, что авторизация под этой учётной записью проходит успешно.
  • Поддерживаемые версии: Exchange 2010, 2010 SP1, 2010 SP2, 2013, 2013 SP1, 2016.
  • Права в UnSpot: подключение настраивает Владелец. Администратор интеграций видит вкладку «Синхронизации», но управлять подключениями календарей не может.

Создание сервисного аккаунта в Exchange

Сервисная учётная запись создаётся стандартными средствами Exchange: в панели ECP откройте «Получатели» → «Почтовые ящики», нажмите «+ Почтовый ящик пользователя» и создайте пользователя (например, app_impersonation).

Затем выдайте учётной записи право имперсонализации: на сервере Exchange запустите Exchange Management Shell и выполните команду, подставив имя созданной учётной записи:

New-ManagementRoleAssignment `
  -Name "UnSpotAppImpersonation" `
  -Role "ApplicationImpersonation" `
  -User "app_impersonation"
PowerShell

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

При необходимости можно ограничить имперсонализацию только ресурсными календарями переговорных — создайте область (Scope) и назначьте роль с этой областью:

# удалить прежнее назначение (если роль уже выдавалась без ограничения)
Remove-ManagementRoleAssignment `
  -Identity "UnSpotAppImpersonation" `
  -Confirm:$false

# область, ограниченная ресурсными ящиками переговорных
New-ManagementScope `
  -Name "UnSpotResourceMailboxes" `
  -RecipientRestrictionFilter {RecipientTypeDetails -eq "RoomMailbox"}

# назначение роли с областью
New-ManagementRoleAssignment `
  -Name "UnSpotAppImpersonation" `
  -Role ApplicationImpersonation `
  -User "app_impersonation" `
  -CustomRecipientWriteScope "UnSpotResourceMailboxes"
PowerShell

Создание подключения

Перейдите в «Администрирование» → «Интеграции» → «Синхронизации», в разделе «Синхронизация календарей» найдите карточку Microsoft Exchange и нажмите «Подключить». Заполните форму — все поля обязательны, длина каждого до 255 символов:

ПолеЧто указать
HostАдрес сервера Exchange без схемы (без https://).
ЛогинUsername сервисной учётной записи.
ПарольПароль сервисной учётной записи. После сохранения пароль скрывается и не отображается при редактировании.
EmailEmail сервисной учётной записи.
Название подключенияПроизвольное имя — отображается на карточке подключения.
Версия ExchangeВыбор из списка: 2010, 2010 SP1, 2010 SP2, 2013, 2013 SP1, 2016.
Не проверять SSL-сертификатТумблер, по умолчанию выключен — сертификат проверяется. Включайте только для серверов с самоподписанными сертификатами.
Использовать базовую авторизацию (Basic Auth)Тумблер, по умолчанию выключен. Включите, если сервер использует базовую аутентификацию.

После нажатия «Сохранить» UnSpot пробует авторизоваться под сервисной учётной записью. При успехе подключение появляется в списке карточек. Если авторизация не удалась, окно формы не закрывается, а в отдельном окне показывается описание ошибки и оригинальный ответ Exchange.

Управление подключениями

  • Подключений может быть несколько — каждое отображается отдельной карточкой, рядом всегда есть карточка с кнопкой «Подключить» для добавления следующего.
  • «Изменить» — редактирование любого поля подключения; пароль в форме замаскирован. При сохранении изменений выполняется повторная проверка авторизации. Если ничего не менялось, кнопка просто закрывает окно.
  • «Отключить» — удаление подключения после окна подтверждения. Вместе с подключением отключаются календари переговорных, которые через него работали.
  • Если подключение перестало работать (например, сменился пароль учётной записи), карточка помечается как невалидная — обновите данные через «Изменить».

Подключение календаря к переговорной

Календарь переговорной подключается указанием email её ресурсного календаря — авторизация пользователей не требуется:

  1. Откройте карточку переговорной и перейдите к подключению календаря.
  2. Выберите подключение Microsoft Exchange (сервисный аккаунт).
  3. В открывшемся окне введите email ресурсного календаря переговорной (например, room@company.com) и подтвердите.

При подключении UnSpot пытается создать в календаре тестовую встречу и сразу удаляет её. Если подключить не удалось, UnSpot покажет описание ошибки и ответ Exchange. У переговорной с подключённым календарём на странице пространств отображается иконка Exchange. Отключается календарь так же, как для остальных провайдеров, — из карточки переговорной.

Обратите внимание: Exchange не отдаёт готовый список ресурсных календарей, поэтому email календаря нужно ввести вручную. Если вы не знаете email ресурсного календаря переговорной, уточните его у администратора Exchange. Как создать ресурсный календарь — см. статью «Создание ресурсного календаря».

Ограничение: входящую синхронизацию нужно перезапускать вручную

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

Как это выглядит: бронирования, созданные в UnSpot, продолжают появляться в календаре, а встречи, созданные в Outlook, перестают приезжать в UnSpot.

Что делать, пока не вышло исправление:

  • чтобы разово подтянуть пропущенные встречи — откройте окно календаря переговорной и нажмите «Запустить синхронизацию». Кнопка доступна роли Владелец и не чаще одного раза в час: рядом показывается подпись «Будет доступна в» со временем следующей попытки;
  • чтобы восстановить постоянный поток событий — переподключите календарь к переговорной.

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

Ошибки при подключении

СообщениеЧто означает и что делать
Введите корректный host. Поле должно содержать только доменВ поле Host допускаются только домен или IP-адрес, без схемы https:// и путей.
Подключение с таким сервером и именем пользователя уже существуетПара «сервер + логин» должна быть уникальна. Отредактируйте существующее подключение вместо создания нового.
Подключение с таким сервером и email уже существуетПара «сервер + email» должна быть уникальна — как и пара «сервер + логин».
Некорректные учётные данные.Сервер отклонил логин или пароль. Проверьте данные сервисной учётной записи и способ авторизации — возможно, нужно включить или выключить «Использовать базовую авторизацию (Basic Auth)».
Недостаточно прав для сервисного аккаунта или приложения.У сервисной учётной записи нет роли ApplicationImpersonation, либо назначение роли ещё не применилось — подождите несколько минут и повторите.
Ошибка подключения.Общая ошибка при обращении к серверу. В окне ошибки UnSpot показывает оригинальный ответ Exchange — проверьте адрес сервера, версию Exchange и доступность EWS.
Этот календарь уже подключён.Ресурсный календарь с таким email уже привязан к другой переговорной.
У комнаты уже есть подключенный календарь.У переговорной может быть только один календарь — сначала отключите текущий.
Календарь не найден.Почтовый ящик с указанным email не найден на сервере — проверьте email ресурсного календаря переговорной.

Связанные статьи

Оставьте заявку, и мы свяжемся с вами в течение 30 минут.

Loading

Как улучшить работу офиса?

Оставьте контакт - покажем на демо как уйти от таблиц, двойных бронирований и путаницы с рабочими местами.

Loading