暂存,接受和测试等非生产环境是单个App Service下的插槽。我想将这些环境的访问权限限制为特定的一组用户。目标是使网站完全适合这些用户进行测试。因此,禁用注册不是一个简单的解决方案。这不是关于Azure中应用程序服务的管理,而是通过访问Web应用程序URL直接访问Web应用程序。
我尝试使用BasicAuth作为访问应用服务的第一级验证,但由于与现有验证冲突而无法使用。
然后我尝试在Web.Config中使用ipSecurity
规则。但是,当app服务处于非生产模式时,我找不到如何仅启用这些限制。我不想要一个我必须手动添加和删除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和一个应用程序设置,其中包含所在环境的名称。
如何在这些非生产环境中添加另一层身份验证,而无需手动更改文件?
答案 0 :(得分:0)
根据我的理解,您希望允许特定用户访问该网址,因此我们需要管理该用户。我们可以使用AD authorization。由于WebApp插槽是常规的Azure WebApp,所以我们需要为每个插槽配置它。我们可以从article获取更多信息。
重要的是要强调插槽本身就是一个常规的Azure Web App,它将拥有自己的应用程序设置,连接字符串,任何其他配置设置甚至是scm站点(https://mysite-staging.scm.azurewebsites.net)
请尝试使用Azure门户网站。以下详细步骤:
1.根据官方document确认AD授权。
2.在Azure AD中找到已注册的应用程序
3.如果我们只想允许Azure AD中的已分配用户登录,我们需要设置[需要用户分配] - &gt;是
4.添加特定用户以访问WebApp。
5.尝试使用浏览器访问WebApp并输入用户名和密码登录
6.单击[接受]按钮,然后它将按预期工作
答案 1 :(得分:0)
您可以考虑通过两种方式禁用对非生产广告位的访问:
注意: “非生产环境(如暂存,验收和测试)是单个App Service的插槽。” -这不是正确的设计!部署插槽用于部署目的-部署前进行测试/验证,零停机时间部署。所有插槽共享相同的资源池(硬件)。如果您考虑将插槽用作进行登台,接受和测试目的的环境,则Web应用程序的性能将大大降低。