Microsoft 365
Пакет Primo.Microsoft365 позволяет работать с почтой Outlook, календарями, файлами OneDrive и SharePoint, книгами Excel, группами Microsoft 365, планами и задачами Planner, а также списками SharePoint.
Элемент Microsoft 365 настраивает подключение и аутентификацию. Он служит контейнером для остальных элементов пакета: они размещаются внутри него и используют его параметры подключения.
Перед началом работы настройте доступ к Microsoft 365.
Если перетащить элемент пакета в процесс вне контейнера, контейнер Microsoft 365 будет создан автоматически.
Свойства
Описание общих свойств элемента см. в разделе Свойства элемента .
Символ * в названии свойства указывает на обязательность его заполнения.
| Свойство | Тип | Описание |
|---|---|---|
| Параметры: | ||
| Тип аутентификации* | - | Способ входа. Доступные значения: UsernameAndPassword — от имени пользователя по логину и паролю, ApplicationIdAndSecret — от имени приложения по секрету, ApplicationIdAndCertificate — от имени приложения по сертификату. По умолчанию UsernameAndPassword |
| ID приложения* | String | Идентификатор приложения (Application (client) ID) из Microsoft Entra ID |
| Тенант* | String | Идентификатор клиента (Directory (tenant) ID) или домен организации, например "company.onmicrosoft.com" |
| Тайм-аут | Int32 | Тайм-аут соединения (мс). По умолчанию 10000 |
| Сертификат: | ||
| Сертификат | String | Путь к файлу сертификата с закрытым ключом (.pfx). Используется при типе ApplicationIdAndCertificate |
| Пароль | String | Пароль к файлу сертификата |
| Приложение: | ||
| Секрет | String | Секрет приложения (Client secret). Используется при типе ApplicationIdAndSecret |
| Секрет (защищенный) | SecureString | Секрет приложения, зашифрованный с помощью SecureString |
| Логин: | ||
| Логин | String | Имя пользователя Microsoft 365, например "robot@company.ru". Используется при типе UsernameAndPassword |
| Пароль | String | Пароль пользователя |
| Пароль (защищенный) | SecureString | Пароль пользователя, зашифрованный с помощью SecureString |
Примечание: Если заполнены и обычное, и защищенное поле (Секрет / Секрет (защищенный), Пароль / Пароль (защищенный)), используется защищенное.
Выбор типа аутентификации
| Тип | Когда использовать | Что заполнить |
|---|---|---|
ApplicationIdAndCertificate | Рекомендуется для роботов: не зависит от пароля пользователя и многофакторной аутентификации | ID приложения, Тенант, Сертификат, Пароль |
ApplicationIdAndSecret | Аналогично сертификату, проще в настройке. Секрет имеет срок действия и требует периодической замены | ID приложения, Тенант, Секрет |
UsernameAndPassword | Работа от имени конкретного пользователя. Не подходит для учетных записей с многофакторной аутентификацией | ID приложения, Тенант, Логин, Пароль |
Важно: При входе от имени приложения (сертификат или секрет) «текущего пользователя» нет. Поэтому в дочерних элементах, работающих с почтой, календарями и файлами OneDrive, обязательно заполняйте свойство Учетная запись (или E-Mail) — адрес ящика, с которым работает робот. Подробнее — в разделе Настройка доступа к Microsoft 365.
Практические примеры
Пример 1: вход по сертификату
- Тип аутентификации:
ApplicationIdAndCertificate - ID приложения:
"11111111-2222-3333-4444-555555555555" - Тенант:
"company.onmicrosoft.com" - Сертификат:
@"C:\Robot\Certs\m365-robot.pfx" - Пароль:
"<пароль к pfx>"
Пример 2: вход от имени пользователя
- Тип аутентификации:
UsernameAndPassword - ID приложения:
"11111111-2222-3333-4444-555555555555" - Тенант:
"company.onmicrosoft.com" - Логин:
"robot@company.ru" - Пароль (защищенный): переменная типа SecureString с паролем
Возможные ошибки
| Ошибка | Причина и решение |
|---|---|
AADSTS7000218: The request body must contain ... 'client_assertion' or 'client_secret' | Тип UsernameAndPassword, а в приложении не включены публичные клиентские потоки. В Entra ID: приложение → Authentication → Allow public client flows = Yes |
AADSTS50076 / AADSTS50079 | У пользователя включена многофакторная аутентификация. Используйте вход по сертификату или секрету |
AADSTS50126 | Неверный логин или пароль |
AADSTS7000215: Invalid client secret provided | Неверный или просроченный секрет. Создайте новый в Entra ID: приложение → Certificates & secrets |
AADSTS700027 / ошибка сертификата | Сертификат не загружен в приложение Entra ID или файл не содержит закрытый ключ |
AADSTS90002: Tenant ... not found | Неверное значение свойства Тенант |