【问题标题】:How best to secure my Web API called by an Azure function?如何最好地保护 Azure 函数调用的 Web API?
【发布时间】:2019-03-10 06:31:47
【问题描述】:

我的任务是创建一个将从服务总线主题触发的 Azure 函数。然后需要该函数将数据写回我们网络内部托管的数据库。我遇到的问题是数据库所在的服务器没有外部IP。

为了解决这个问题,我将创建一个 Web API,该 API 将驻留在我们的内部网络上,托管在具有外部 IP 的服务器上的 IIS 上。该函数将调用 API,API 会将数据写回数据库,不会遇到任何问题。

我现在遇到的大问题是如何适当地保护 API。我想知道如何最好地做到这一点,因为没有客户端应用程序、前置门户或需要存储的凭据列表。我已经阅读了 Azure AD 身份验证,这对于 Azure 功能来说一切都很好,但是由于 Web API 在 Azure 之外并且在内部网络上,我不确定这是不是解决方案。我知道 JWT 并已在我为 3rd 方客户端开发的另一个 API 上使用它,其中创建了密钥和帐户,但是是否需要创建一个内部使用的帐户,我不是这么肯定。

谁能告诉我上述问题的正确解决方案?我已经阅读了太多关于保护 API 的文档,我变得越来越困惑。

提前感谢任何有任何建议的人:)

【问题讨论】:

    标签: asp.net-web-api azure-active-directory restful-authentication azure-authentication


    【解决方案1】:

    如果情况允许,我多次使用的一种方法是仅根据设置值进行验证。这类似于 Azure Functions 提供的开箱即用功能。视情况而定,您可以将其作为设置(明文)直接存储在功能设置中,也可以使用 KeyVault 安全存储。

    这实现起来非常简单,并且通常适用于这些或多或少是永久性的点对点集成。

    或者,编写一个程序来完成函数所做的事情,但在本地运行它并避免整个集成需求。添加 jwt/service 主体似乎过多。

    【讨论】:

      猜你喜欢
      • 2020-02-19
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 2020-08-10
      • 2018-11-07
      • 2019-12-03
      相关资源
      最近更新 更多