我已经用c#在Azure Portal中编写了5个Azure函数。
以下是安装我的应用程序的步骤:
以上处理将在Customer节点上执行。
这里描述的使用“关键字”的授权只是提供另一层API密钥授权,当我的脚本需要由公共客户端(如edge节点)调用时不适用,因为它在那里是可发现的。
在我的场景中,保护Azure函数的最佳方法是什么?
发布于 2017-10-07 10:03:40
默认情况下,天蓝色函数是公共的。因此,您可以部署它们,并且端点可以通过函数上的地址公开使用。如前所述,您可以设置函数级访问,这意味着您需要传递一个访问键。所以,如果受到保护,他们是善良的。
不过,还有其他一些选择:
您可以使用蔚蓝环境服务在vnet中构建函数。但是为了这一点,你付出了很大的代价,你必须使用服务计划版本的天蓝色功能。
我已经把API管理和函数结合起来了。API管理是一种向使用者公开API的方法,但对使用保持大量的控制。Api管理组件并不阻止公开的蔚蓝地址可用,但我已经在代码中实现了模式,该模式检查附加到http请求的特殊令牌,作为应用程序管理传递的一部分。或者,您也可以对函数应用程序设置IP限制,以便仅允许来自alternatively端点的通信量。(IP地址)非常有效,您只能通过应用程序管理来实现该功能。
只是上面的一个注意事项,Azure门户已经删除了通过标准functions选项卡设置IP限制的能力。因此,您需要进入资源资源管理器,并在web配置部分手动设置IP限制。
最后,您可以设置一个oauth服务器,并在函数或api管理组件中验证令牌,或者两者兼而有之。
发布于 2018-06-12 14:17:01
AZURE ASE ()对于5种功能来说太昂贵了。您可以通过添加应用程序网关和在函数中白名单应用程序网关的IP地址来保护这些功能。您可以在这里找到更多详细信息:Azure函数中的白线
除了具有基于令牌的或基于AAD的身份验证和授权之外,这一切都是(如前一个答复中提到的'Noel‘)。
发布于 2020-05-02 13:49:24
保护Azure函数的最佳方法是通过您信任的AAD或身份验证服务器。如果这不可行,可能是因为您正在使用控制台或App中的这些函数,不支持授权代码流,或者您的AAD中不存在的用户使用它,那么使用APIM。下面@Noel提供的技术非常强大,只需要从APIM限制对您的函数的访问。(函数不应该是匿名的,除了APIM代码之外,不需要任何授权代码)现在考虑如何保护APIM。您有多个选项,但可能可以将客户端证书视为正确身份验证的手段。最后,消费者需要有一些东西来验证他们(密码、证书、设备或任何东西)。因此,设置检查和存在证书的策略,并找到验证该证书的方法,可以帮助保护您的APIM。现在的问题是如何保护APIM,这里有许多基于策略的选项。希望这能有所帮助。(也不要忘记考虑上面Noel提供的其他解决方案)
https://stackoverflow.com/questions/46617942
复制相似问题