OAuth 授权码流程

授权码流程是 OAuth 2.0 中使用的一种安全协议,允许第三方应用程序在不暴露用户凭据的情况下访问用户的资源。

在此流程中,客户端应用程序将用户重定向到授权服务器,在那里他们登录并批准客户端的访问请求。 获得批准后,授权服务器向客户端发送授权码,客户端用其交换访问令牌,并可选择交换刷新令牌。 然后使用此访问令牌代表用户向资源服务器发出授权请求。

这种流程通常用于用户希望在不直接共享其凭据的情况下,授予第三方应用程序访问其资源(如数据或服务)的场景。

授权码流程与带有 PKCE(代码交换证明密钥)的授权码流程之间的主要区别在于用于防止某些攻击的安全机制,特别是针对移动端和本地应用程序的攻击。

在标准的授权码流程中,用户通过授权服务器进行身份验证后,客户端会收到一个授权码。 客户端随后将此代码交换为访问令牌。 然而,这种流程容易受到授权码拦截攻击的影响,攻击者可以拦截授权码并利用它获取访问令牌。

带有 PKCE 的授权码流程通过使用动态生成的密钥(代码验证器)来验证授权请求,从而增加了一层额外的安全性。 这使其更加安全,特别是在难以安全存储客户端密钥的环境中,例如移动端或本地应用程序。

要使用授权码流程创建授权类型:

过程

  1. 完成 创建 OAuth 连接 中的步骤 1-6。
  2. 选择授权类型为授权码流程带有 PKCE 的授权码流程,以将用户身份验证与令牌发行者分开。 这增强了安全性,因为授权类型支持刷新令牌,从而在不暴露敏感凭据的情况下实现长期访问。 使用 Microsoft 365 Outlook 包的授权代码流程时,请查看以下权限: 请参阅 应用程序的权限
    • Mail.Read
    • Mail.ReadWrite
    • Mail.Send
    • MailboxSettings.Read
    • MailboxSettings.ReadWrite
    • offline_access
    • openid
    • User.Read
    • User.ReadBasic.All
    您必须同时使用身份验证方法客户端密钥发布带有 PKCE 的授权码流程授权类型,否则您将收到验证错误。
  3. 完成 创建 OAuth 连接 中的步骤 8-18。