Настройка доступа к Microsoft 365
Элементы пакета Primo.Microsoft365 обращаются к Microsoft 365 через Microsoft Graph от имени зарегистрированного приложения. Перед началом работы администратор Microsoft 365 должен один раз зарегистрировать приложение и выдать ему разрешения.
Регистрация приложения
- Откройте Microsoft Entra admin center → Identity → Applications → App registrations → New registration.
- Укажите имя приложения, например
Primo RPA Robot, тип учетных записей — Accounts in this organizational directory only. Нажмите Register. - На странице Overview скопируйте:
- Application (client) ID — значение для свойства ID приложения контейнера Microsoft 365;
- Directory (tenant) ID — значение для свойства Тенант.
- Настройте способ входа в зависимости от выбранного типа аутентификации:
- сертификат — Certificates & secrets → Certificates → Upload certificate: загрузите открытую часть сертификата (
.cer). Файл.pfxс закрытым ключом храните на машине робота; - секрет — Certificates & secrets → Client secrets → New client secret. Значение секрета отображается один раз — сохраните его сразу;
- логин и пароль — Authentication → Allow public client flows → Yes.
- сертификат — Certificates & secrets → Certificates → Upload certificate: загрузите открытую часть сертификата (
Выдача разрешений
- В приложении откройте API permissions → Add a permission → Microsoft Graph.
- Выберите тип разрешений:
- Application permissions — для входа по сертификату или секрету;
- Delegated permissions — для входа по логину и паролю.
- Отметьте разрешения из таблицы ниже для тех групп элементов, которые будут использоваться, и нажмите Add permissions.
- Нажмите
Grant admin consent for <организация>и дождитесь зеленых отметок в колонке Status.
| Группа элементов | Разрешения |
|---|---|
| Outlook | Mail.ReadWrite, Mail.Send |
| Календари | Calendars.ReadWrite |
| Excel, Файлы | Files.ReadWrite.All; для SharePoint дополнительно Sites.ReadWrite.All |
| SharePoint Lists | Sites.ReadWrite.All |
| Группы | Group.ReadWrite.All |
| Planner | Tasks.ReadWrite, Group.ReadWrite.All |
Если элементы группы только читают данные, можно выдать разрешения на чтение: Mail.Read, Calendars.Read, Files.Read.All, Sites.Read.All, Group.Read.All.
Важно: Разрешения типа Application дают приложению доступ к данным всех пользователей организации. Чтобы ограничить робота определенными почтовыми ящиками, администратор Exchange может настроить политику доступа приложений (Application Access Policy / RBAC for Applications).
Учетная запись в элементах
У элементов, работающих с данными конкретного пользователя (Outlook, Календари, Файлы), есть свойство Учетная запись (у календарей — E-Mail). Оно определяет, чей ящик или OneDrive обрабатывает элемент:
| Значение свойства | Чьи данные | Когда использовать |
|---|---|---|
| не заполнено | пользователя, под которым выполнен вход | только при типе аутентификации UsernameAndPassword |
адрес, например "robot@company.ru" | указанного пользователя | обязательно при входе по сертификату или секрету; при входе по логину — для работы с чужим или общим ящиком |
При входе по сертификату или секрету незаполненное свойство приводит к ошибке Access is denied или /me request is only valid with delegated authentication flow.
При входе по логину для работы с чужим ящиком пользователю нужны права на этот ящик в Exchange, а приложению — делегированные разрешения Mail.ReadWrite.Shared, Mail.Send.Shared, Calendars.ReadWrite.Shared.
Возможные ошибки
| Ошибка | Причина и решение |
|---|---|
Access is denied. Check credentials and try again. | Не заполнена Учетная запись при входе от имени приложения, либо не выдано нужное разрешение |
Insufficient privileges to complete the operation. | Разрешение не выдано или не нажата кнопка Grant admin consent |
Authorization_RequestDenied | Выданы разрешения не того типа: Delegated вместо Application или наоборот |