为什么在 HTTP 请求的“授权”标头中的令牌之前需要“承载”?

信息安全 验证 http 授权 令牌
2021-08-26 21:34:55

以下两个标题之间到底有什么区别:

Authorization : Bearer cn389ncoiwuencr

           vs

Authorization : cn389ncoiwuencr

我经历过的所有来源都将“授权”标头的值设置为“承载”,然后是实际令牌。但是,我一直无法理解它的意义。如果我只是将令牌放在 Authorization 标头中怎么办?

4个回答

Authorization: <type> <credentials>模式是由 W3C 在HTTP 1.0中引入的,此后在许多地方被重用。许多 Web 服务器支持多种授权方法。在这些情况下,仅发送令牌是不够的。

使用

Authorization : Bearer cn389ncoiwuencr

格式最有可能实现 OAuth 2.0不记名令牌。OAuth 2.0 授权框架设置了许多其他要求以保持授权安全,例如要求使用 HTTPS/TLS。

如果您要与使用 OAuth 2.0 的服务集成,最好熟悉该框架,以便正确实施您使用的流程并避免不必要的漏洞。网上有很多不错的教程。

早在不记名授权之前,此标头就用于基本身份验证为了互操作性,这些标头的使用受 W3C 规范的约束,因此即使您正在阅读和编写标头,也应该遵循它们。Bearer 区分了您正在使用的授权类型,因此它很重要。

Bearer Token 设置在每个 Inline Action HTTP 请求的 Authorization 标头中,并且 Bearer 本身确定身份验证的类型。

参考https://developers.google.com/gmail/markup/actions/verifying-bearer-tokens

wordBearer想提供授权方案。因为有不同的授权方案,如:

  • http-basic-Authentication 的基本使用
  • 摘要MD5 散列 http-basic-authentication(已弃用
  • 为 MS Windows 系统协商基于 SPNEGO 的 Kerberos
  • AWS中使用的AWS4-HMAC-SHA256,在标头中指定凭据和所需服务(签名)
  • 承载

非公地是: