如何处理在每个API调用中使用标头身份验证的自定义连接器



我有一个Azure逻辑应用程序,它使用了我通过导入Postman Collection创建的自定义连接器。我的连接器调用的RESTful API在每个请求中需要3个身份验证头:UserNameSecretApiIntegrationCode。因为它需要三个特定命名的参数,所以我不相信任何身份验证预设都适用于我

我知道我可以保护各种连接器的输入和输出。我一直在考虑将敏感信息存储在SQL表中,以便在每次运行时查询,并将值存储在传递给每个自定义连接器的API调用的变量中。

这是一种可行的方式来保护敏感数据不被可能访问我的逻辑应用程序的人看到吗?在每次调用中传递这些头的最安全方法是什么?

在这方面,(消费(逻辑应用程序中没有太多选项。

您的Logic应用程序选项

朝着正确方向迈出的第一步是将您的敏感信息放入Azure密钥库,并使用逻辑应用程序中的相应连接器从中检索数据。这比为此目的查询SQL表更容易实现,也更安全。

您可以做的第二件事是为进行API调用的连接器激活安全输入。这可以确保传递给这些连接器的敏感信息在逻辑应用程序的运行历史记录和Azure Log Analytics等连接服务中被混淆。

这种方法的问题是,任何对您的Logic应用程序拥有读取权限的人都可以继续禁用安全输入设置,或者创建一个步骤来转储密钥库的内容。您可以使用RBAC来控制对Logic应用程序的访问,但这当然意味着管理开销。

备选方案:API管理服务

如果你想让其他开发者在不向他们泄露API秘密的情况下更改Logic应用程序,你可以考虑使用某种中间层与API进行通信。Azure API管理服务(APIM(是此处的选项之一。

您将在密钥库中管理您的敏感信息,并通过";命名值";到您的APIM实例中。然后,您可以将API添加为APIM中的后端,并将其向Logic应用程序公开。

这里的优点是,您可以使用可以频繁循环的APIM订阅密钥来确保对API的访问。您还可以将对原始API的访问仅限于那些需要对Logic应用程序可用的调用。

APIM是否适合您取决于您的用例,因为它是有代价的。即使是开发商的计划也要花费大约50美元/月:https://azure.microsoft.com/en-us/pricing/details/api-management/

备选方案:Azure功能

你可以使用一个简单的Azure函数,作为你的Logic应用程序和API之间的中间层。此功能可以配置为从密钥库提取敏感数据,也可以通过功能访问密钥进行保护,您可以定期更新该密钥。

如果你在消费计划中运行这些功能,这是一个非常便宜的选择:https://azure.microsoft.com/en-us/pricing/details/functions/

最新更新