Я пытаюсь ограничить доступ к веб-сайту Azure определенными IP-адресами.
В основном это сайт PHP 5.4, но я использовал web.config для разрешения / ограничения доступа.
В настоящее время он запрещает всем, кроме перечисленных IP-адресов, однако, когда страница сначала загружается с разрешенного IP-адреса, всегда сначала отображается исключение:
Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен.
если страница затем обновляется, она доставляет страницу пользователю как обычно / ожидаемо. Похоже, что исключение происходит при первом открытии браузера (Chrome или Firefox) или когда веб-страница закрывается, а затем снова посещается после длительного перерыва.
Файл web.config находится в корневом каталоге, и другой аутентификации пока нет.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<ipSecurity allowUnlisted="false" denyAction="NotFound">
<clear/>
<add allowed="true" ipAddress="XX.XX.XXX.XXX" />
</ipSecurity>
</security>
</system.webServer>
</configuration>
Я не вижу ничего плохого в вашем Web.config
файл. Вероятно, происходит то, что браузер кеширует домашнюю страницу. Поэтому, когда вы обновляете страницу, она загружается правильно.
Служба поддержки Azure вернулась ко мне и сказала, что это ошибка, которая будет исправлена в будущем обновлении.
Однако есть и исправление -> переключение сайта в режим «Всегда включено».
Для этого необходимо, чтобы сайт был запущен с использованием базовых / стандартных уровней, т. Е. Вы не можете использовать «всегда включено» на бесплатном уровне.
Что ж, надеюсь, вы все еще можете заставить его работать, используя бесплатный уровень … как только они исправят ошибку 🙂
Эта часть теперь настраивается в файле конфигурации облачной службы (.cscfg).
<NetworkConfiguration>
<AccessControls>
<AccessControl name="test">
<Rule action="permit" description="test" order="100" remoteSubnet="xxx.xxx.xxx.xxx/32" />
<Rule action="deny" description="test" order="200" remoteSubnet="0.0.0.0/0" />
</AccessControl>
</AccessControls>
<EndpointAcls>
<EndpointAcl role="WebRoleName" endPoint="Endpoint1" accessControl="test" />
</EndpointAcls>
</NetworkConfiguration>
Сначала добавьте IP-адреса, которые вы хотите разрешить, а затем запретите все остальные.
в EndpointAcls мы указываем наши конечные точки, которые перечислены в ServiceDefinition.csdef файл. И подключите конечную точку к вновь созданному AccessControl.