【问题标题】:Connect Azure VM to a azure function privately将 Azure VM 私下连接到 azure 函数
【发布时间】:2018-05-03 21:54:05
【问题描述】:

我有一个运行 .net MVC 的 Azure VM,其中控制器是 API 端点。我想做的是在 azure VM 中点击此 MVC 中的 API 端点。此端点需要用户进行身份验证,但是当我使用 azure 函数访问此端点时,我想跳过身份验证过程。这可能吗?

本质上,由于 azure 函数和 azure VM 位于 azure 基础架构中,我的猜测是我应该能够使用可以通过身份验证的私有 IP 访问 VM 中的 API 端点。

【问题讨论】:

    标签: azure networking azure-functions azure-virtual-machine


    【解决方案1】:

    如果您为包含函数应用的应用服务计划启用 VNET 集成,则 Azure 函数可以私下调用您的 VM(消费计划是不行的)。

    相反,如果函数托管在应用服务隔离中,则只能从 VM 私下调用函数,这是一个非常昂贵的提议,只是为了避免通过公共函数端点在标头中发送函数密钥。

    【讨论】:

    • 是否可以为函数创建一个私钥来公开验证VM和mvc项目?那是我可以通过 azure 函数控制台创建的东西吗?
    • 是的,通过门户添加功能键,确保您的功能身份验证级别不是匿名的,然后像这样调用它 - stackoverflow.com/a/50147599/4148708。找一个安全的地方在你的虚拟机上存储这个秘密,并在调用函数时取走它。不是 x509 意义上的私钥,但仍然是一个秘密。
    • 只是为了确保我们在同一页面上。 azure 函数和 VM 是分开的。所以你说我可以为 azure 函数创建密钥,然后当我从 azure 函数调用控制器的端点(在 azure vm 中运行)时,我抓取密钥,然后对该端点进行异步调用传递钥匙。然后我只需要确保在 VM 中运行的 MVC 项目知道这个键,让它到达控制器的端点。这是正确的吗?谢谢顺便说一句!
    • 不,我以为你想要相反的(VM 调用函数)。只需寻找应用服务的 VNET 集成。这将调用私有 IP 上的 VM 端点。修改你的函数代码调用http://10.1.1.6/api/something,考虑到那是虚拟机。
    • 您也可以实现之前评论中的逻辑。将密钥存储在函数应用程序的应用程序设置中,并在 MVC 应用程序中进行匹配。我想你只需要在你的 MVC 过滤器中挂钩所有调用,所以它应该是相对微不足道的。更企业化的方法是将两个应用程序绑定到 Azure AD,并使用 Bearer 令牌调用 MVC 应用程序。
    猜你喜欢
    • 2021-11-22
    • 2015-05-03
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2020-01-30
    • 2016-12-06
    相关资源
    最近更新 更多