我们将通过Azure API管理公开一个自定义构建的API (. net)。我们希望尽可能地遵循众所周知的标准,所以我们不会让API消费者感到惊讶。API是通过用户从APIM的开发者门户生成的API密钥来保护的。
我的理解是授权头应该用于身份验证和授权目的。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization
但是奇怪的是,API-Key并没有被包含在认证方案中。
https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml authscheme
API消费者应该使用授权头进行身份验证吗?
。Authorization: API-Key xxx-xxx
或自定义头。
。my-key:xxx-xxx
从技术上讲,如果授权头中有令牌,则不需要任何api密钥。我假设API-key/client和秘钥已经用于生成令牌。当客户端通过授权头发送令牌时,API所有者验证您的令牌并返回响应。