在我的桌面电子邮件客户端中使用 OAuth 身份验证而不是“应用程序密码”(又名“安全邮件密钥”)有什么好处?

在我的桌面电子邮件客户端中使用 OAuth 身份验证而不是“应用程序密码”(又名“安全邮件密钥”)有什么好处?

Google 允许使用 OAuth 身份验证来获取电子邮件,但也允许使用 Google 生成的冗长的“应用程序密码”来代替帐户密码。Yahoo/AT&T 还允许使用“安全邮件密钥”代替 OAuth - “安全邮件密钥”似乎与“应用程序密码”相同。OAuth 如何提供更高的安全性,与“应用程序密码”相比,OAuth 还具有哪些其他优势?

答案1

它们很相似,但是:

  1. 应用程序密码是手动管理的(复制粘贴等),每个网站都有自己的机制。OAuth2 令牌以或多或少标准的方式自动发出。

    (理论上,OAuth2 还具有允许有限设备(例如带有繁琐的屏幕键盘的智能电视)获取令牌而无需太多输入的流程——您通过计算机登录以获取数字 PIN,然后在智能烤面包机或冰箱等上输入该 PIN,现在它就有了 OAuth2 令牌,而无需输入长长的应用程序密码。)

  2. 在大多数服务中,所有应用密码都以相同的方式授予各种权限。OAuth2 令牌仅授予您已确认的特定访问权限(例如,仅限 Gmail、仅限云端硬盘或仅限日历)。

    (某些服务(例如 GitHub)甚至允许为应用程序密码指定范围,但您仍然需要确切知道您需要哪些密码,我敢打赌大多数人只需单击“全部,谢谢”,然后在任何地方使用该单个应用程序密码。)

  3. OAuth2 使用两层系统,其中一个是仅发送到身份验证服务器的长寿命“刷新”令牌,另一个是客户端每 X 天替换一次的短寿命“访问”令牌。

    根据服务的设计方式,这实际上可以防止服务端的一些安全漏洞(例如,受损的 IMAP 服务器可以收集永远有效的应用程序密码,但实际上无法获取 OAuth2 刷新令牌 - 只能获得临时访问令牌)。

  4. 应用密码适用于任何应用。OAuth2 要求每个开发人员将其应用注册为“客户端”,并允许 Google 或 Yahoo 本周实施他们想要的任何愚蠢的开发政策。

相关内容