Ограничить доступ к определенному URL-адресу, работающему на IIS7 / ASP.NET - PullRequest
3 голосов
/ 11 июня 2010

Я развертываю общедоступный веб-сайт ASP.NET на веб-ферме IIS7.

Приложение работает на 3 веб-серверах и находится за брандмауэром.

Мы хотим создать одну страницуна сайте, который доступен только для внутренних пользователей.Он в основном используется для диагностики, истечения срока действия кэша триггера и т. Д.

/ admin / somepage.aspx

Каков наилучший способ контроля доступа к этой странице?Нам необходимо:

  1. Запретить всем внешним (публичным) пользователям доступ к URL.
  2. Разрешить определенным внутренним пользователям доступ к странице только с определенных IP-адресов или сетей.

Должен ли этот контроль доступа осуществляться на (а) сетевом уровне, (б) прикладном уровне и т. Д .?

Ответы [ 3 ]

2 голосов
/ 06 ноября 2010

Я обнаружил, что лучшим решением было бы разместить irule на нашем балансировщике нагрузки F5.

Мы создали правило, что балансировщик нагрузки отбрасывает все внешние запросы для определенного каталога.Внутри мы все еще можем попасть на страницы, подключившись напрямую к серверам в ферме.

1 голос
/ 11 июня 2010

Вот как защитить определенную страницу для определенных пользователей и только для них

<configuration>
    <location path="admin/somepage.aspx">
        <system.web>
            <authorization>
                <allow users="User1,User2" />
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
</configuration>

Чтобы установить разрешенный IP-адрес, необходимо настроить веб-сайт в IIS через IPv4 Address and Domain Restriction, где добавить подстановочный знак Deny Entry и указатьAllow Entries.

Также вы можете настроить все это программно.

0 голосов
/ 11 июня 2010

Простая реализация состояла бы в том, чтобы установить безопасность файла для этого файла в IIS только для встроенной проверки подлинности Windows.

Затем в коде этого файла проверьте идентификатор пользователя. Если они аутентифицированы, у них будет идентификатор и предоставьте им доступ к странице.

if(!HttpContext.Current.User.Identity.IsAuthenticated)
{
   //Direct user to other page or  display message.
}

Когда пользователи переходят на эту страницу, он запрашивает у них сетевой логин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...