Проверка подлинности Windows для Intranet/Internet

Я разрабатываю веб-приложение ASP.net для своей компании. Некоторые пользователи используют этот сайт во внутренней сети (Intranet), а некоторые используют интернет-сайт. Я использую режим проверки подлинности Windows.

Мне нужно найти способ не запрашивать режим проверки подлинности Windows для пользователя интрасети и prompt Режим проверки подлинности Windows для пользователя Интернета.

Как я могу это сделать?

Ответ 1

В зависимости от того, что вы описываете, проверка подлинности Windows в IIS сделает трюк.

Сначала некоторые ссылки:

Однако обратите внимание на следующее:

Единый вход (SSO) (т.е. доступ к приложению без указания имени пользователя и пароля) произойдет, если все верно:

  • Клиентский компьютер и сервер являются частью одного домена Active Directory.
  • Пользовательский сеанс на клиентском компьютере является пользователем домена AD.
  • Клиентский компьютер имеет доступ к серверу домена (то есть серверу, ответственному за вход пользователя)
  • Браузер - Internet Explorer.
  • Используемый URL указывает на полное доменное имя сервера (т.е. http://SERVERNAME.DOMAIN.NAME/ не просто http://SERVERNAME/
  • Уполномоченные пользователи должны иметь доступ для чтения к каталогу приложения, если вы используете олицетворение. Приложение будет работать с их учетными данными в основном. (подробнее в статья MSDN)

При любых других обстоятельствах пользователю будет предложено ввести учетные данные (имя пользователя и пароль) для учетной записи в домене Active Directory. Таким образом, пользователь, получающий доступ к вашему веб-серверу из Интернета, получит всплывающее окно с просьбой предоставить имя пользователя и пароль.

Сообщаем, что для пользователя, не использующего одиночный сигнал (запрашивается имя пользователя и пароль), режим проверки подлинности HTTP, скорее всего, будет BASIC, что означает, что любой, кто может перехватить это соединение, сможет видеть заменяемое имя пользователя и пароль, Если вы пойдете с этой техникой, убедитесь, что соединение между клиентом и сервером зашифровано (HTTPS или, возможно, VPN).

Ответ 2

Убедитесь, что ваш веб-сервер работает в домене, и все ваши пользователи в Интранете имеют доступ для чтения к папке, содержащей ваш веб-сайт на веб-сервере.

Затем убедитесь, что у вас есть в вашем web.config(при условии, что вы хотите определить, какой пользователь домена обращается к вашему сайту.

Наконец, откройте диспетчер IIS и щелкните правой кнопкой мыши веб-сайт и выберите "Свойства". Оттуда перейдите на вкладку "Безопасность каталога" и нажмите "Изменить" с помощью проверки подлинности и контроля доступа. Снимите флажок "Анонимный доступ" и убедитесь, что установлена ​​ "Встроенная проверка подлинности Windows". Это должно заставить веб-сайт вести себя так, как ожидалось (предполагая, что ваши клиенты интрасети используют IE)

Ответ 3

Насколько я знаю, проверка подлинности Windows может использоваться только для интрасети, но вы также можете включить аутентификацию форм для аутентификации пользователей Интернета. Эта страница содержит некоторую информацию и ссылку на учебник о том, как это сделать.

Ответ 4

Я бы, скорее всего, развернул приложение на двух разных серверах. Windows на сервере внутри брандмауэра, который доступен и доступен пользователям, прошедшим проверку подлинности Windows. на публичной стороне вы устанавливаете веб-конфигурацию для использования проверки подлинности форм, а затем беспокоитесь о том, чтобы обеспечить подключение к серверу.

однако, если вы хотите использовать для этого один сервер, вы можете прочитать эту статью MSDN: Смешивание форм и безопасности Windows в ASP.NET