Как подключиться к Exchange Online с помощью OAuth 2.0 в MailKit? - PullRequest
0 голосов
/ 23 января 2020

У меня есть веб-приложение, которое отправляет электронные письма пользователям через Exchange Online (Office365) с использованием MailKit и Basi c Authentication. Наша компания является партнером MS и поэтому обязана отключить аутентификацию Basi c для наших сервисов к концу февраля 2020 года.

Итак, я хочу использовать OAuth 2.0 для подключения к Exchange Online, аналогично этому пример . На самом деле, может быть решение, доступное в соответствии с этим ответом , но я ничего не могу найти по этому поводу.

Сейчас я играю с MS Identity Platform v2.0. но я не могу понять, как это сделать.

Любая помощь будет оценена.

ОБНОВЛЕНИЕ 1

Я не хочу отправлять почту от имени вошедших в систему пользователей, но вместо этого есть одна учетная запись пользователя Office365, которая должна использоваться для отправки писем (уведомления и т. д.) другим.

ОБНОВЛЕНИЕ 2

Мне удалось немного приблизиться к тому, что я хочу сделать, используя Microsoft Graph SDK и Имя / пароль провайдера .

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

ОБНОВЛЕНИЕ 3

Я перешел на пересылку почты на данный момент. Но я обновлю этот вопрос, если найду ответ на него.

Ответы [ 2 ]

1 голос
/ 26 января 2020

Я бы выбрал Microsoft Graph API . Это единая конечная точка для всех служб Microsoft, включая электронную почту. Адрес электронной почты с указанием c документа о конечных точках здесь

Microsoft предоставляет SDK на разных языках для разработки клиентских приложений с использованием Graph API.

На высоком уровне вам потребуется выполнить

i) Зарегистрировать приложение в Azure Active Directory. См. здесь

ii) Используйте поток «Предоставление кода авторизации» Oauth2 для получения токена refre sh. См. здесь

iii) Замените токен refre sh на токен доступа и используйте токен доступа для вызова Microsoft Graph API.

iv) Вам также необходимо сохраните токен refre sh, если у вас есть случаи, когда вашему приложению необходимо выполнять действия, даже если пользователь не в сети. В этом случае убедитесь, что вы включили область 'offline' в шаге ii)

0 голосов
/ 24 января 2020

Я бы предложил заглянуть в DotNetOpenAuth или подобную библиотеку и прочитать их образцы. Вам, вероятно, понадобится знать Windows Live URL, чтобы использовать их для этого, если библиотека DotNetOpenAuth не имеет их встроенных.

Примеры можно найти здесь: https://github.com/DotNetOpenAuth/DotNetOpenAuth.Samples

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