Azure最佳实践中的API安全性

时间:2015-09-03 13:15:09

标签: api azure asp.net-web-api azure-api-management azure-api-apps

我正在开发一个Web API,该API将由同一Azure主机中的其他Web应用程序以及其他第三方服务/应用程序调用。我目前正在研究API应用程序和API管理,但在安全性实施方面,有几件事我不清楚:

  1. 使用API​​管理实施时,API App是否需要进行身份验证?如果是,有什么选择?此链接http://www.kefalidis.me/2015/06/taking-advantage-of-api-management-for-api-apps/提及“请记住,没有必要在API应用上进行身份验证,因为您可以在API管理上启用身份验证并让它处理所有详细信息。”这意味着对匿名的公共API应用程序进行身份验证?但是,知道API App的直接URL的人可以直接访问它。
  2. 实施API管理安全性的最佳方法是什么?教程中提到的那个(在标题中传递了一个原始订阅密钥)似乎很容易受到中间攻击的影响
  3. API App添加的优势是什么,而不是使用普通的Web API项目实现?
  4. 提前致谢。

1 个答案:

答案 0 :(得分:2)

我可以从API Management的角度回答。要保护API Mgmt与后端之间的连接(有时称为最后一英里安全性),有以下几种选择:

  1. 基本身份验证:这是最简单的解决方案
  2. 相互证书身份验证:https://azure.microsoft.com/en-us/documentation/articles/api-management-howto-mutual-certificates/ - 这是最常用的方法。
  3. IP白名单:如果您有标准或高级层APIM实例,则代理的IP地址将保持不变。因此,您可以配置防火墙规则以阻止未知的IP地址。
  4. JWT令牌:如果您的后端具有验证JWT令牌的能力,您可以阻止任何没有有效JWT的呼叫者。
  5. 此视频也可能有所帮助:https://channel9.msdn.com/Blogs/AzureApiMgmt/Last-mile-Security

    我认为该文档意味着您可以在APIM中进行JWT令牌验证。但是,为防止有人直接呼叫您的后端,您必须在Api应用中实施上述选项之一