OAuth2和MFA有什么关系

What is the relationship between OAuth2 and MFA

这是我在 Whosebug 上的第一个问题。我已经阅读了 https://whosebug.com/help/how-to-ask 部分,并且已经通过互联网阅读和阅读以找到 OAuth2 和 MFA 之间的联系。这让我更加困惑。当我把它们分开时,我理解了基本概念。

背景。我正在开发一个 windows 应用程序并使用 mailkit 在那里实现电子邮件。当我研究如何在上面实施 MFA 时,大多数答案都在谈论 OAuth2。这就是为什么我真的需要找到这个问题的答案。

我已阅读 https://docs.microsoft.com/en-us/answers/questions/513048/microsoft-office-365-outlook-sending-emails-using.html and https://github.com/jstedfast/MailKit/blob/master/ExchangeOAuth2.md 以及更多文章来实现我的目标。他们都在谈论 OAuth2 而不是 MFA。

如果我的问题没有多大意义,我很抱歉。请帮助我理解这一点。

谢谢。

OAuth 2.0 和 MFA 彼此没有直接关系。

OAuth 2.0 是一种授权协议,它为客户端应用程序提供委托访问权限。委托方式由 grant type 定义,您可以根据用例选择一种或另一种。它不会直接告诉您如何验证最终用户。

例如,使用经典 authorization code flow 您可以将用户指向登录页面和可选的同意屏幕(允许/拒绝访问应用程序)。 URL 的一个例子是:

https://authorization-server.com/auth?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=photos&state=1234zyx

然后由授权服务器决定如何对最终用户进行身份验证。它可以是登录/密码屏幕,然后是任何类型的 MFA。

另一方面,

MFA 代表 multi-factor 身份验证,这意味着可以有 2 个以上的身份验证因素(例如登录名和密码对,后跟一个时间代码、短信或其他任何内容) .

根据我对您分享的OAuth2 with Exchange的了解,您只需要在微软平台上注册一个应用程序,就可以访问微软API来发送邮件。那确实是一个 OAuth 2.0,但我在那里没有看到任何与 MFA 相关的内容。