当Key公开时,Azure Function API Key中是否有任何意义?

时间:2018-04-05 11:55:03

标签: azure http security azure-functions api-key

Azure Functions允许将API密钥用作授权形式。

API key authorization

  

默认情况下,HTTP触发器需要HTTP请求中的API密钥。   因此,您的HTTP请求通常如下所示:

https://<yourapp>.azurewebsites.net/api/<function>?code=<ApiKey>
     

您可以允许匿名请求,不需要密钥。

在我的情况下,Azure功能在网站单页客户端应用程序中使用,因此调试应用程序的任何人都可以公开地使用API​​密钥。

在这种情况下,使用API​​密钥有什么意义吗?

1 个答案:

答案 0 :(得分:2)

对于意外调用和愚蠢的抓取工具仍然有用。对于后者,您应该在标题中使用键,如下所示:

GET /api/get-issues HTTP/1.1
Host: {funcapp}.azurewebsites.net
User-Agent: ajax-library-of-the-day
x-functions-key: rkW0PqT.....zcUBQ==

Function authorization logic

如果用户代理到后端API 授权是您的主要关注点,那么您将需要OAuth 2.0隐式流程。

如果您收到401 Unauthorized的费用,则无法发表评论。很可能不是,否则这将导致一个非常昂贵的攻击向量,而你的订阅是昂贵的。