gpt4 book ai didi

azure - 如何保护受 APIM 保护的 Azure Functions,以便它们仅响应来自同一资源组中的 Azure Web 应用程序的请求?

转载 作者:行者123 更新时间:2023-12-03 06:24:35 24 4
gpt4 key购买 nike

我有一个托管在 Azure 上的 Web 应用程序 (MVC/C#/.Net Core 3.1)。

两个由 HTTP 触发并受 APIM 保护的新 Azure 函数将添加到同一父资源组中,以便 Web 应用程序从中获取数据。

如何才能使 Azure 函数仅响应应用程序发出的 GET 请求?有没有一种方法可以实现“如果原始服务器既不是 Azure 盒子 123-South 也不是 123-West,则返回 HTTP 403”,或者如果添加更多功能,可以更好地扩展?

或者,是否有一种方法可以使用代码检查 Azure 函数中的 HTTP header ?

我们之前的 Web API(该函数的前身)是“本地”托管的。它检查 HTTP 请求的 header ,查找特定的 base-64 编码 header 。如果找到,则对 header 的值进行解码并检查其正确性。对于 Azure 来说,这仍然是一种有效的方法吗?

注意:我们的网络应用要求用户通过 Microsoft 或任何其他身份提供商登录。我们的用户是公众,而不是我们域的一部分。

最佳答案

我假设您的 Azure Functions 已通过使用 IP Restrictions 防止直接调用(APIM 除外)。或其他方式,但只是想将其发布给遇到此问题的其他人。

您可以根据自己的情况考虑一些选项

<强>1。使用Client Certificate Authentication
这将要求您的 Web 应用程序在其对 APIM 的请求中设置客户端证书。

<强>2。使用Azure AD Auth
由于您的客户没有要传递的 token ,因此这在您的情况下是可以接受的。在这里,您的 Web 应用程序将使用 Managed Identity 获得一个 token 。或客户端凭据,并将其在请求中传递给 APIM。

<强>3。设置自定义 header
这可能是最不安全但最容易实现的。您只需在 Web 应用程序的请求中添加 header ,APIM 将使用 policies 验证该值。 .

请注意,如果这是一个静态值,并且您的客户以某种方式获得了它,则他们可以直接调用 APIM。使其动态化会增加此选项的复杂性,此时最好选择#1 或#2。

关于azure - 如何保护受 APIM 保护的 Azure Functions,以便它们仅响应来自同一资源组中的 Azure Web 应用程序的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75653606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com