asp.net-web-api - 如何最好地保护 Azure 函数调用的 Web API?
问题描述
我的任务是创建一个将从服务总线主题触发的 Azure 函数。然后需要该函数将数据写回我们网络内部托管的数据库。我遇到的问题是数据库所在的服务器没有外部 IP。
为了解决这个问题,我将创建一个 Web API,它将驻留在我们的内部网络上,托管在具有外部 IP 的服务器上的 IIS 上。该函数将调用 API,API 将数据写回数据库,没有遇到任何问题。
我现在遇到的最大问题是如何适当地保护 API。我想知道如何最好地做到这一点,因为没有客户端应用程序、前置门户或需要存储的凭据列表。我已经阅读了 Azure AD 身份验证,这对于 Azure 功能来说一切都很好,但是由于 Web API 在 Azure 之外和内部网络上,我不确定这是否是解决方案。我知道 JWT 并已在我为 3rd 方客户端开发的另一个 API 上使用它,其中创建了密钥和帐户,但是是否需要创建一个内部使用的帐户,我不是这么肯定。
任何人都可以让我知道上述问题的正确解决方案吗?我已经阅读了很多关于保护 API 的文档,我变得越来越困惑。
提前感谢任何有任何建议的人:)
解决方案
如果情况允许,我多次使用的一种方法是仅根据设置值进行验证。这类似于 Azure Functions 提供的开箱即用功能。视情况而定,您可以将其作为设置(明文)直接存储在功能设置中,也可以使用 KeyVault 安全存储。
这实现起来非常简单,并且通常适用于这些或多或少永久的点对点集成。
或者,编写一个程序来执行该函数的功能,但在本地运行它并避免整个集成需求。添加 jwt/service 主体似乎过多。
推荐阅读
- javascript - 如何防止 Vue Select 突出显示第一个选项?
- printing - IBM HP5Si 打印流到 XPS 打印驱动程序
- firebase - Vue JS 无法正确显示数据表(v-for)
- sql - SQL 查询获取本月所有客户的生日
- java - 获取和更改 hashmapvalues
- reactjs - TypeScript 与 React Redux,连接类型
- reactjs - 空白问题 - 反应路由器
- haskell - Haskell 模式匹配不同类型
- python - 一种匹配包含括号的 Lisp 字符的方法
- automation - 包装程序并有条件地传递输入和输出