【问题标题】:API security in Azure best practiceAzure 最佳实践中的 API 安全性
【发布时间】:2015-11-29 08:27:50
【问题描述】:

我正在开发一个 Web API,它将被同一 Azure 主机中的其他 Web 应用程序以及其他 3rd 方服务/应用程序调用。我目前正在研究 API 应用程序和 API 管理,但在安全实施方面我还不清楚:

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

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    我可以从 API 管理的角度来回答。为了保护 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 的调用者。

    此视频也可能对您有所帮助:https://channel9.msdn.com/Blogs/AzureApiMgmt/Last-mile-Security

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

    【讨论】:

    • 江淼,谢谢您的回答。我已经阅读了这些选项,但我没有找到任何专门提到 API 应用程序支持这些选项的文章。
    猜你喜欢
    • 2011-01-26
    • 2014-01-17
    • 2010-09-28
    • 1970-01-01
    • 2011-02-10
    • 2013-06-19
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多