Проверка подлинности Windows для интранета / интернета - PullRequest
11 голосов
/ 16 марта 2009

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

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

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

Ответы [ 4 ]

19 голосов
/ 16 марта 2009

Исходя из того, что вы описываете, аутентификация Windows в IIS поможет.

Первые ссылки:

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

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

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

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

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

2 голосов
/ 16 марта 2009

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

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

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

0 голосов
/ 16 марта 2009

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

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

0 голосов
/ 16 марта 2009

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

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