Oauth 2.0 如何使用MailKit中的OAuth 2.0连接到Exchange Online?

Oauth 2.0 如何使用MailKit中的OAuth 2.0连接到Exchange Online?,oauth-2.0,microsoft-graph-api,mailkit,microsoft-identity-platform,Oauth 2.0,Microsoft Graph Api,Mailkit,Microsoft Identity Platform,我有一个web应用程序,它使用MailKit和基本身份验证通过Exchange Online(Office365)向用户发送电子邮件。我们公司是MS合作伙伴,因此有义务在2020年2月底之前关闭我们服务的基本认证 因此,我想使用OAuth 2.0连接到Exchange Online,类似于此。事实上,可能有一个解决方案,根据这一点,但我无法找到任何关于它 现在我正在玩MS Identity Platform v2.0,但我不知道如何做 任何帮助都将受到感谢 更新1 我不想代表已登录用户发送邮件,

我有一个web应用程序,它使用MailKit和基本身份验证通过Exchange Online(Office365)向用户发送电子邮件。我们公司是MS合作伙伴,因此有义务在2020年2月底之前关闭我们服务的基本认证

因此,我想使用OAuth 2.0连接到Exchange Online,类似于此。事实上,可能有一个解决方案,根据这一点,但我无法找到任何关于它

现在我正在玩MS Identity Platform v2.0,但我不知道如何做

任何帮助都将受到感谢

更新1

我不想代表已登录用户发送邮件,但有一个单独的Office365用户帐户,用于向其他人发送邮件(通知等)

更新2

我使用MicrosoftGraphSDK和

我们的用户帐户需要多因素身份验证,因此我在使用用户密码时出错,因为我无法满足第二个因素。当我使用应用程序时,由于密码不正确,密码验证失败

更新3


我现在改用邮件转发。但是,如果我能找到答案,我会更新这个问题。

我建议你去看看或类似的图书馆,阅读他们的样本。如果DotNetOpenAuth库没有内置Windows Live URL,您可能需要了解用于此目的的Windows Live URL


可以在这里找到样本:

我的选择是调查。它是所有Microsoft服务(包括电子邮件)的单一端点。电子邮件特定的端点文档是

Microsoft提供不同语言的SDK,以使用Graph API开发客户端应用程序

在较高的级别上,您需要执行以下操作

i) 在Azure Active Directory中注册应用程序。看

ii)使用Oauth2“授权码授予”流获取刷新令牌。看

iii)将刷新令牌交换为访问令牌,并使用访问令牌调用Microsoft Graph API


iv)如果您有应用程序需要执行操作的用例,即使用户处于脱机状态,您也需要存储刷新令牌。在这种情况下,请确保使用Microsoft.Identity.Client在步骤ii)中包括作用域“脱机”

,您可以生成一个令牌,然后使用该令牌进行身份验证

我发现下面是IMAP、POP3和SMTP的示例,因此适合我的项目,以获得一个有效的解决方案。尽管示例显示了交互式方法,但在我尝试使用客户端凭据时,客户端凭据流带有应用程序机密


谢谢您的回答!不幸的是,我的用例似乎和你的有点不同。基本上,我已经有了用户的凭据,并希望在代码中使用它们进行身份验证——就像GMail的MailKit示例一样。这就是我们从基本身份验证转向基于令牌的处理方式的全部原因。谢谢您的回答!根据,Live SDK和Live Connect API不再可用。我将接受您的回答,尽管我没有测试它。文档看起来不错,但是-似乎它是在我找到一个使用邮件中继的工作解决方案后不久发布的。没问题,在我找到文档之前在这里发现了你的问题,所以尽管我会顺便看看对我有帮助的东西:)希望它能帮助其他人。