1

У нас есть веб-приложение, которое развертывается в качестве службы App в Azure. Мы хотели бы ограничить доступ к нему, указав белый список IP-адресов, которые могут быть выполнены в некоторых настройках службы Azure App Service, а не в web.config, которые мы имеем внутри проекта.Как ограничить доступ к службе приложений с помощью настройки внутри Azure Portal

В настоящее время мы ограничиваем IP-адреса в нашей среде.

  • Производство: Мы настроили VNET интеграции для App службы. Мы приложили NSG к VNet'sSubnet, а из NSG мы можем контролировать входящий и исходящий доступ.
  • Этап: У нас есть следующий блок конфигурации в нашем web.config, который содержит белые IP-адреса, которым разрешен доступ к службе App на нашем промежуточном сервере.

    <security> 
        <ipSecurity allowUnlisted="false" denyAction="NotFound"> 
         <add allowed="true" ipAddress="some ip address" subnetMask="255.255.255.254"></add> 
         <add allowed="true" ipAddress="some ip address" subnetMask="255.255.255.254"></add> 
        </ipSecurity> 
    </security> 
    
  • развитие (местное): Мы должны раскомментировать блок <security> конфигурации в наших локальных машинах развития сог мы на самом деле не нужны. И это вызывает ошибку, см. Снимок экрана ниже.

enter image description here

Это некоторое содержимое из HttpFailre_09-07-33.html

Module   IpRestrictionModule 
Notification BeginRequest 
Handler  aspNetCore 
Error Code  0x80070021 
Config Error This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false". 

Мы хотели бы, чтобы полностью удалить этот <security> блок из web.config, потому что по другой причине , мы не хотим, чтобы IP-адреса достигли производительности.

А также нам не разрешено делать VNet-интеграцию на нашем промежуточном сервере (что-то из-за рутирования!).

Итак, есть ли способ ограничить IP-адреса в Azure App Service?

ответ

7

Итак, есть ли способ ограничить IP-адреса в Azure App Service?

1.We может использовать web.config, чтобы ограничить IP-адрес, как вы упомянули

2.We может подключиться к WebApp от менеджера IIS и мы можем конфиг ограничить IP легко. Более подробную информацию см. blog.

3.Мы могли бы использовать REST API, чтобы сделать это, и мы могли бы легко сделать это с помощью Azure Resource Exploer (https://resources.azure.com/). Мы также можем сделать это с подробной информацией о командлетах PowerShell, пожалуйста, обратитесь к другому SO Thread. Ниже приводятся простые шаги по использованию этого средства для использования azure resource explorer.

a. Откройте проводник ресурсов azure и выберите соответствующую веб-страницу конфигурации веб-сайта, чтобы нажать кнопку . Редактировать.

enter image description here

б. Измените ipSecurityRestrictions на значение массива.

enter image description here enter image description here

гр. Нажмите кнопку Путь, чтобы отправить запрос.

enter image description here

Ошибке конфигурация Этот раздел конфигурация не может использоваться на этом пути

Если мы не отпереть обработчик, нам нужно, чтобы разблокировать обработчик, подробнее, пожалуйста, обратитесь к другим SO Thread , Ниже вырезано из потока SO.

1) В дереве соединений (в IIS) перейдите на свой серверный узел, а затем на свой веб-сайт.

2) Для веб-сайта в правом окне вы увидите редактор конфигурации под управлением.

3) Дважды щелкните по редактору конфигурации.

4) В открывшемся окне сверху вы найдете выпадающее меню. Выберите «system.webServer/обработчики» из раскрывающегося списка.

5) С правой стороны, есть еще один снимок. > Выберите «ApplicationHost.Config»

6) В правой верхней части панели «Разблокировка» вы найдете раздел «Разделение». Нажмите на это.

7) После того, как обработчики приложения applicationHost разблокированы, ваш сайт должен работать нормально.

+0

Благодарим за это! Я решил использовать # 2, где я добавляю значения 'ipRestriction' в' Azure Resource Explorer' напрямую. Однако у меня есть один вопрос: сохраняют ли значения 'ipRestriction', даже если я развертываю новый' web.config'? Я просто сделал разворот, и он не изменился, я просто хочу подтвердить :) Если он изменится для каждого развертывания, мне, возможно, придется использовать сценарии PowerShell для установки 'ipRestrictions' – jmc

+0

. По моему опыту, рекомендуется использовать скрипт PowerShell для этого. –

+0

Хорошо, один последний вопрос, пожалуйста. Где вы рекомендуете, чтобы я поместил сценарий PowerShell? Я думаю о двух местах - 1.) Внутри 'project.json' Я добавлю' postpublish' действие для выполнения скрипта ИЛИ 2.) Внутри 'PublishProfiles' я могу добавить файл' .ps1' или просто поместите скрипты непосредственно в сгенерированный 'publish-module.psm1' – jmc