auth oauth2 oidc webauthn passkey security

现代认证协议详解:OAuth 2.0, OpenID Connect 与 WebAuthn

了解现代登录的工作原理。深入探讨 OAuth 2.0 流程、OIDC 身份层,以及由 WebAuthn 和 Passkeys 引领的无密码未来。

2026-04-11

现代身份验证协议:从 OAuth 2.0 到 Passkeys

在数字时代,“你是谁?”以及“你能做什么?”是系统必须回答的两个最关键的问题。身份验证 (AuthN) 和授权 (AuthZ) 是安全的支柱。本指南将探讨管理这些过程的现代协议。

1. 联合身份与授权

OAuth 2.0(授权)

OAuth 2.0 是授权的行业标准协议。它允许网站或应用程序代表用户访问由其他 Web 服务托管的资源(例如,“使用 Google 登录”)。

  • Bearer Token(持有者令牌):OAuth 2.0 中最常用的访问令牌类型。持有令牌即拥有访问权限。
  • API Key(API 密钥):一种更简单的身份验证形式,常用于机器对机器的通信。

OpenID Connect (OIDC)

OIDC 构建在 OAuth 2.0 之上,增加了身份层。OAuth 关注的是访问,而 OIDC 关注的是身份。它允许客户端根据授权服务器执行的身份验证来验证最终用户的身份。

SAML (Security Assertion Markup Language)

一种基于 XML 的标准,主要用于企业环境中的单点登录 (SSO)。它允许身份提供商 (IdP) 将授权凭据传递给服务提供商 (SP)。


2. 企业与遗留目录服务

LDAP (Lightweight Directory Access Protocol)

一种成熟的协议,用于访问和维护分布式目录信息服务。它是许多企业员工数据库的核心。

Kerberos

一种网络身份验证协议,旨在通过使用对称密钥加密为客户端/服务器应用程序提供强大的身份验证。它是 Windows Active Directory 中的默认身份验证方法。


3. 多因素身份验证 (MFA)

OTP(一次性密码)

  • HOTP:基于 HMAC 的一次性密码(基于事件)。
  • TOTP:基于时间的一次性密码(用于 Google Authenticator 等应用)。

4. 无密码的未来:FIDO 与 WebAuthn

FIDO2 与 WebAuthn

FIDO 联盟创建了这些标准,旨在用安全的公钥加密取代密码。WebAuthn 是实现这一目标的浏览器 API。

Passkeys(通行密钥)

Passkeys 是 FIDO 标准的一种特定实现,允许用户使用解锁设备时所用的生物识别(FaceID、指纹)或 PIN 码登录网站和应用。它们通过云端(如 Apple iCloud、Google 密码管理器)在设备间同步。

U2F (Universal 2nd Factor)

一种较早的 FIDO 标准,通常需要物理安全密钥(如 YubiKey)作为第二因素。


对比总结

协议 类型 主要使用场景 格式
OAuth 2.0 授权 API 访问、第三方集成 JSON / JWT
OIDC 身份 “使用...登录”按钮 JWT (ID Token)
SAML 身份/SSO 企业办公登录 XML
WebAuthn 身份验证 无密码 / Passkeys 公钥加密
LDAP 目录 企业用户管理 二进制

结论

从传统密码向 PasskeysOIDC 的转变正使互联网变得更加安全和易用。虽然 OAuth 2.0 仍然是 API 授权的王者,但用户登录的未来无疑是基于硬件且无密码的。对于当今构建安全应用程序的任何开发人员来说,理解这些协议都是必不可少的。