[英]Restrict access to non production environments (Azure App Service)
非生产环境(例如暂存,验收和测试)是单个App Service下的插槽。 我想将对这些环境的访问限制为一组特定的用户。 目标是使这些网站能够完全正常运行,以供这些用户进行测试。 因此,禁用注册不是一个简单的解决方案。 这与在Azure中管理应用程序服务无关,而是与通过访问Web应用程序URL直接访问Web应用程序有关。
我尝试使用BasicAuth作为访问应用程序服务的第一级身份验证,但由于与现有身份验证冲突而无法使用。
然后,我尝试在Web.Config中使用ipSecurity
规则。 但是,我找不到如何仅在应用程序服务处于非生产模式时启用这些限制的方法。 我不需要一个必须手动添加和删除IP规则的解决方案。
<system.webServer>
<security>
<!-- How to disable the following rule in production -->
<ipSecurity allowUnlisted="false" denyAction="Forbidden">
<add allowed="true" ipAddress="203.0.113.0" subnetMask="255.255.255.0"/>
</ipSecurity>
</security>
</system.webServer>
另一个反对IP规则的论点是,必须具有访问权限的用户经常从动态IP连接。
每个环境都有一个唯一的URL和一个应用程序设置,其中包含其所在环境的名称。
如何在这些非生产环境中添加另一层身份验证,而不必手动更改文件?
根据我的理解,您希望允许特定用户访问该URL,因此我们需要管理该用户。 我们可以对此使用AD授权 。 由于WebApp插槽是常规的Azure WebApp, 因此我们需要为每个插槽进行配置。 我们可以从文章中获得更多信息。
需要强调的是,该插槽本身就是一个常规的Azure Web App,它将具有自己的应用程序设置,连接字符串,任何其他配置设置,甚至是一个scm网站( https://mysite-staging.scm.azurewebsites.net )。
请尝试使用Azure门户进行此操作。 以下详细步骤:
1.根据正式文件配置AD授权。
2.在Azure AD中找到已注册的应用程序
3.如果我们只想允许Azure AD中的已分配用户登录,则需要设置[需要用户分配]->是
4.添加用于访问WebApp的特定用户。
5.尝试使用浏览器访问WebApp并输入用户名和密码进行登录
6.单击[接受]按钮,它将按预期工作
您可以通过两种方式来禁用对非生产版位的访问:
注意:“非生产环境(例如暂存,验收和测试是在单个App Service中的插槽)。” -这不是正确的设计! 部署插槽用于部署目的-部署前进行测试/验证,零停机时间部署。 所有插槽共享相同的资源池(硬件)。 如果您考虑将插槽用作进行登台,接受和测试目的的环境,则Web应用程序的性能将大大降低。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.