我应该对 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 标头吗的主要内容,如果未能解决你的问题,请参考以下文章
获取适用于 Android 的 Google Places API 密钥
我应该将使用 Elastic Beanstalk 部署的 NodeJS 应用程序的 API 密钥存储在哪里?
将我的 Google Geocoding API 密钥与 Python 地理编码器一起使用
Google Maps Android API v2 授权失败