2024年12月

HTTP Auth From BasicAuth to WebAuthn

在 Web 开发中,身份认证是一个很常见的诉求,而平时设计中并没有好好研究整体的 Auth 体系,今天就从头开始研究一下 Auth 这个东西。

MDN 对 HTTP Auth 有所总结:

RFC 7235 定义了一个 HTTP 身份验证框架,服务器可以用来质询(challenge)客户端的请求,客户端则可以提供身份验证凭据。

质询与响应的工作流程如下:

  1. 服务器端向客户端返回 401(Unauthorized,未被授权的)响应状态码,并在 WWW-Authenticate 响应标头提供如何进行验证的信息,其中至少包含有一种质询方式。
  2. 之后,想要使用服务器对自己身份进行验证的客户端,可以通过包含凭据的 Authorization 请求标头进行验证。
  3. 通常,客户端会向用户显示密码提示,然后发送包含正确的 Authorization 标头的请求。

而大部分 HTTP 验证都遵循这一流程,只是加密算法、验证实现可能有所区别。

- 阅读剩余部分 -