如何最好地保护由Azure函数调用的Web API?

时间:2018-10-04 19:34:26

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

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

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

我现在面临的主要问题是如何适当保护API。我想要一些有关如何最好地执行此操作的指示,因为将没有客户端应用程序,前端门户或需要存储的凭据列表。我已经阅读了Azure AD身份验证,这对于Azure功能来说是一件好事,但是由于Web API在Azure外部和内部网络上,因此我不确定这是否是解决方案。我知道JWT,并已在我为第三方客户端开发的另一个API上使用了该API,在该API中创建了密钥和帐户,但是是否需要创建一个帐户供内部使用,我不是好

有人可以让我知道上述问题的正确解决方案吗?我已经阅读了很多有关保护API的文档,我对此感到越来越困惑。

在此先感谢任何有建议的人:)

1 个答案:

答案 0 :(得分:0)

如果情况允许,我已经使用过很多次的方法就是根据设置值进行验证。这类似于Azure Functions开箱即用提供的功能。取决于,您可以将其直接存储为功能设置中的设置(明文),也可以使用KeyVault安全地存储它。

这非常容易实现,通常对于这种或多或少永久的点对点集成都适用。

或者,编写一个程序,该程序执行该函数的功能,但在本地运行该程序,避免整个集成需求。添加jwt / service主体似乎过多。