我应该对 API 密钥使用 Authorization 标头吗

Posted

技术标签:

【中文标题】我应该对 API 密钥使用 Authorization 标头吗【英文标题】:Should I use the Authorization header for API keys 【发布时间】:2021-10-24 07:31:36 【问题描述】:

我们将通过 Azure API 管理公开自定义构建的 API (.NET)。我们希望尽可能符合众所周知的标准,因此我们不会让 API 消费者感到惊讶。 API 通过用户从 APIM 的开发者门户生成的 API 密钥进行保护。

我的理解是 Authorization 标头应该用于身份验证和授权目的。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization

但奇怪的是,API-Key 并未包含在身份验证方案中。

https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml#authschemes

API 使用者是否应该使用授权标头进行身份验证?

例如Authorization: API-Key xxx-xxx

或自定义标题。

例如my-key:xxx-xxx

【问题讨论】:

【参考方案1】:

从技术上讲,如果您在授权标头中有令牌,则不需要任何 API 密钥。我假设 API 密钥/客户端和密钥已用于生成令牌。当客户端通过授权标头发送令牌时,API 所有者会验证您的令牌并返回响应。

【讨论】:

以上是关于我应该对 API 密钥使用 Authorization 标头吗的主要内容,如果未能解决你的问题,请参考以下文章