将对我的 Azure Web 应用程序的访问限制为仅对我的 Web 作业?
Restrict Access to my Azure Web App only to my web job?
我正在尝试将对我的 Azure Web 应用程序的访问限制为仅对我的一项 Web 作业进行访问。
我可以使用 IP 限制 来实现吗?
要实现此类限制,基于 IP 的限制将无用,原因如下:
- 可能会有其他应用程序(如果是上述标准计划,则为您所有,如果是 free/shared 飞机,则可能是其他客户应用程序)将 运行 在同一台服务器上,而那些也可以访问您的网络应用程序。
- 您的 Web 作业没有固定的出站 IP,因为它可能会移动到不同的实例(如果您的应用程序中有多个实例)
针对您的原始问题的快速简便的解决方案是:
- 在您的 Web 应用端实施 BASIC Auth (username/pwd) 或 Bearer token Auth。
- 从您的 Web 作业(在 Invoke-WebRequest 中)根据您选择的身份验证模式传递 username/pwd 或身份验证令牌。
这里有几个链接讨论了为 Azure Web 应用程序实现基本身份验证以及如何通过 PowerShell 调用此类应用程序:
如何使用脚本(Invoke-WebRequest -Uri)向您的页面传递参数
如何在Web App中使用C#代码验证请求参数
https://docs.microsoft.com/en-us/rest/api/datacatalog/authenticate-a-client-app
由于使用基本身份验证,凭据以明文形式传递并且可以轻松解码,我们建议网络作业通过 SSL 调用 WebApp URL。此外,Basic Auth 是最简单的身份验证机制之一,您可能还想探索其他更复杂的身份验证方案。
我正在尝试将对我的 Azure Web 应用程序的访问限制为仅对我的一项 Web 作业进行访问。 我可以使用 IP 限制 来实现吗?
要实现此类限制,基于 IP 的限制将无用,原因如下:
- 可能会有其他应用程序(如果是上述标准计划,则为您所有,如果是 free/shared 飞机,则可能是其他客户应用程序)将 运行 在同一台服务器上,而那些也可以访问您的网络应用程序。
- 您的 Web 作业没有固定的出站 IP,因为它可能会移动到不同的实例(如果您的应用程序中有多个实例)
针对您的原始问题的快速简便的解决方案是:
- 在您的 Web 应用端实施 BASIC Auth (username/pwd) 或 Bearer token Auth。
- 从您的 Web 作业(在 Invoke-WebRequest 中)根据您选择的身份验证模式传递 username/pwd 或身份验证令牌。
这里有几个链接讨论了为 Azure Web 应用程序实现基本身份验证以及如何通过 PowerShell 调用此类应用程序:
如何使用脚本(Invoke-WebRequest -Uri)向您的页面传递参数
如何在Web App中使用C#代码验证请求参数
https://docs.microsoft.com/en-us/rest/api/datacatalog/authenticate-a-client-app
由于使用基本身份验证,凭据以明文形式传递并且可以轻松解码,我们建议网络作业通过 SSL 调用 WebApp URL。此外,Basic Auth 是最简单的身份验证机制之一,您可能还想探索其他更复杂的身份验证方案。