Trace Id is missing
跳转至主内容
Microsoft 安全

什么是 OAuth?

了解什么是 OAuth 以及如何在不泄露敏感信息的情况下授权应用程序和服务之间的访问。

OAuth 说明

OAuth 是一种技术标准,允许你授权一个应用或服务登录到另一个应用或服务,无需泄露密码等私有信息。是否曾经收到过这样的消息,例如"使用 Facebook 登录?” 或“允许此应用程序访问你的帐户?” 你已看到 OAuth 正在运行。

OAuth 是 Open Authorization(开放式授权)的缩写,而不是有时被认为的 authentication。身份验证是一个验证身份的过程。OAuth 确实涉及到你的身份,但目的是授予使用不同应用和服务无缝连接到你的权限,而无需新建账户。OAuth 提供了这种简单的体验,让你可以选择授权两个应用程序共享部分数据,而无需透露凭据。它兼顾了便捷性和安全性。

OAuth 设计用于超文本传输协议 (HTTP)。它使用访问令牌来证明你的身份,并允许它代表你与另一个服务进行交互。如果第二个服务发生数据泄露,你在第一个服务上的凭据仍然安全。OAuth 是一个被广泛采用的开放标准协议,大多数网站和应用程序的开发者都使用此协议。

重要的是,OAuth 不会授予第三方应用或服务无限制访问数据的权限。协议部分内容明确规定允许第三方访问哪些数据,以及可对此数据执行的操作。在很多人都能接触到大量敏感信息和专有信息的商业环境中,设置此类限制和保护身份信息尤为重要。


 

OAuth 的工作原理是什么?

访问令牌使 OAuth 的使用更加安全。访问令牌是一段数据,其中包含有关适用于令牌的用户和资源信息。令牌还将包括数据共享的具体规则。

例如,你可能希望与照片编辑应用程序共享社交媒体个人资料中的照片,但只希望能访问你的部分照片。它也不需要访问你的直接消息或好友列表。此令牌仅授权访问你批准的数据。此外,还可能有一些规则规定应用程序何时可以使用令牌(可能是单次使用或重复使用)以及令牌的有效期。

OAuth 流程主要是机器与机器之间的交互,用户只需几个接触点。在某些情况下,你可能不需要提供审批,因为软件正在后台以无提示方式处理。这方面的两个 OAuth 例子是:在企业工作场景中,身份平台处理资源之间的连接,以减少大量用户的 IT 摩擦;或者在某些智能设备之间的交互中。


 

OAuth 技术示例

就像许多简化繁琐操作的技术一样(这里指的是在多个应用程序中手动创建账户),OAuth 几乎已被应用程序创建者普遍采用。它为人们和企业提供了多种用例。

举一个 OAuth 的例子,假设你正在使用 Microsoft Teams 作为协作工具,并希望获取更多有关组织内外合作者的信息。你决定启用 LinkedIn 集成,以便在你与他们交互时了解有关人员的详细信息,而无需退出 Teams。然后,Microsoft 和 LinkedIn 将使用 OAuth 授权帐户与 Microsoft 标识进行关联。

使用 OAuth 的另一种情况是,如果要下载一个预算应用程序,通过警报和图表等可视化辅助工具来帮助你跟踪自己的支出。如果要完成其工作,应用需要访问你的某些银行数据。可以启动请求,将银行帐户与应用关联,仅授权访问帐户余额和交易。应用和银行将使用 OAuth 代表你进行此信息交换,而不会向应用泄露银行登录凭据。

另一个 OAuth 示例是,如果你是使用 GitHub 的开发人员,并且你了解到有一个可用的第三方应用可以与你的帐户集成以执行自动代码评审。转到 GitHub 市场并下载应用。然后,它会要求你使用 GitHub 身份授权与应用程序连接,此一过程将使用 OAuth 进行处理。这样,审核应用程序就可以访问你的代码,无需每次都登录这两项服务。

OAuth 1.0 和 OAuth 2.0 之间有什么区别?

最初的 OAuth 1.0 仅针对网站开发。由于 OAuth 2.0 既适用于应用程序也适用于网站,而且实施起来更快、更容易,因此目前并未广泛使用。OAuth 1.0 的扩展性不如 OAuth 2.0,它只有三种可能的授权流,而 OAuth 2.0 有六种。

如果计划使用 OAuth,最好从一开始就使用 2.0 版本。遗憾的是,OAuth 1.0 无法升级到 OAuth 2.0。OAuth 2.0 是对 OAuth 1.0 的全面重新设计,多家大型科技公司对其设计提出了反馈意见。网站可以同时支持 OAuth 1.0 和 OAuth 2.0,但创建者希望 2.0 完全替代 1.0。

OAuth 与OIDC

OAuth 和 Open ID Connect (OIDC) 是密切相关的协议。它们的相似之处在于,都能代表用户让一个应用程序访问另一个应用程序的资源。两者的区别在于,OAuth 用于授权访问资源,而 OIDC 用于验证个人身份。两者都能发挥作用,使两个互不相关的应用程序能够共享信息,而不会泄露用户数据。

标识提供程序通常同时使用 OAuth 2.0 和 OIDC。OIDC 专门为提升 OAuth 2.0 的功能而开发,它为 OAuth 2.0 增加了一个身份层。由于 OIDC 基于 OAuth 2.0 构建,因此无法向后兼容 OAuth 1.0。

 

开始使用 OAuth

在网站和应用程序中使用 OAuth 2.0 可以简化身份验证过程,从而显著改善用户或员工的体验。要开始使用,请投资标识提供程序解决方案,如 Microsoft Entra,它可通过内置安全功能保护用户和数据

Microsoft Entra ID(前 Azure Active Directory)支持所有 OAuth 2.0 流程。应用开发人员可以使用 ID 作为基于标准的身份验证提供程序,帮助他们将企业规模的新式标识功能集成到应用中。IT 管理员可以用它来控制访问权限。

详细了解 Microsoft 安全

  • 了解 Microsoft Entra

    利用整体解决方案系列保护身份和跨云安全访问。

  • Microsoft Entra ID(前 Azure Active Directory)

    使用强身份验证和基于风险的自适应访问保护对资源和数据的访问。

  • 在应用中建立信任

    实现 SSO,以便员工可以使用一个凭据访问所有需要的资源。

  • 简化登录体验

    实现 SSO,以便员工可以使用一个凭据访问所有需要的资源。

  • 防范攻击

    使用多因素身份验证,加强对组织资源的保护。

  • 使用 OAuth 简化对电子邮件数据的访问

    了解如何使用旧协议对与应用程序的连接进行身份验证。

 

 

常见问题解答

  • OAuth 是 Open Authorization(开放式授权)的缩写,是一种技术标准,允许你授权一个应用或服务登录到另一个应用或服务, 无需泄露密码等私有信息。当某个应用程序要求你授权查看你的个人资料信息时,它就是在使用 OAuth。

  • OAuth 的工作原理是交换访问令牌,包含用户信息和令牌对应资源信息的数据片段。一个应用程序或网站与另一个应用程序或网站交换有关用户的加密信息,并包含数据共享的特定规则。此外,还可能有一些规则规定应用程序何时可以使用令牌,并规定了有效期。OAuth 流程主要是机器与机器之间的交互,用户只有几个接触点(如有)。

  • 许多公司使用 OAuth 来简化对第三方应用程序和网站的访问,而不会泄露用户的密码或敏感数据。Google、Amazon、Microsoft、Facebook 和 Twitter 都使用它来共享有关帐户的信息,以实现各种目的,包括简化购买流程。Microsoft 标识平台使用 OAuth 授权工作和学校帐户、个人帐户、社交帐户和游戏帐户的权限。

  • OAuth 和 Open ID Connect (OIDC) 是密切相关的协议。它们的相似之处在于,都能代表用户让一个应用程序访问另一个应用程序的资源。但两者的区别在于,OAuth 用于授权访问资源,而 OIDC 用于验证个人身份。两者都能使两个互不相关的应用程序共享信息,而不会泄露用户数据。

  • OAuth 1.0 和 OAuth 2.0 间有许多不同之处,因为 OAuth 2.0 是对 OAuth 1.0 的彻底重新设计,使后者几乎过时。OAuth 1.0 仅针对网站开发,而 OAuth 2.0 则同时适用于应用程序和网站。与 OAuth 1.0 的三种授权流相比,OAuth 2.0 的实施速度更快、更简单、可扩展,并有六种可能的授权流。

关注 Microsoft 365