Войти без имени пользователя и пароля из веб-браузера на Windows - PullRequest
4 голосов
/ 08 января 2009

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

Как это достигается? Нужно ли веб-серверу поддерживать дополнительную аутентификацию?

Обновление: Я прошу общий веб-сервер, а не только IIS. Например, как это сделать на Apache?

Ответы [ 9 ]

5 голосов
/ 08 января 2009

Веб-сервер просто должен быть настроен для поддержки аутентификации Windows (которая будет NTLM или, что еще лучше, Kerberos, если и клиент, и сервер имеют W2K или более позднюю версию). Я считаю, что IIS или Apache могут быть настроены для этого.

Браузер также должен поддерживать это - по крайней мере, IE делает это (не уверен в других, это может быть возможно). edit: похоже, что Firefox также имеет некоторую поддержку, и Safari на MacOS

edit: для получения подробной информации о Apache, модули Google для аутентификации NTLM. Модули Kerberos также существуют. как и в других ответах, это действительно работает только в интрасети - не только потому, что браузер должен находиться в зоне интрасети (относится только к IE), но и потому, что любой промежуточный брандмауэр обычно останавливает эту работу, и потому что необходимые междоменные отношения доверия вероятно не существует. Также немного сложнее заставить работать, если сервер apache работает под UNIX, и особенно если у вас также есть серверы Kerberos в UNIX, но все же возможно.

3 голосов
/ 08 января 2009

Это будет беспрепятственно только в конкретной ситуации; а именно веб-сервер должен поддерживать NTLM (например, IIS), и он должен находиться в зоне, на которую настроен клиент («Зона интрасети» на языке IE, если только конечный пользователь не настроил свои параметры)

2 голосов
/ 08 января 2009

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

1 голос
/ 08 января 2009

Как указывалось ранее, NTLM обычно используется, если ваш сервер работает под управлением Windows (MS Active Directory). Однако для Apache есть также модули, которые будут связаны с этим: mod_ntlm .

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

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

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

Кроме того, Firefox по умолчанию не поддерживает NTLM, но его можно настроить с помощью следующей команды: http://www.crossedconnections.org/w/?p=89

0 голосов
/ 13 марта 2012

Я искал больше информации о Kerberos (потому что NTLM, даже v2, устарел с AD 2008), и я нашел эту статью, объясняющую, как заставить его работать с Apache (как вы упомянули). http://blog.scottlowe.org/2006/08/10/kerberos-based-sso-with-apache/

Этот вопрос, вероятно, устарел (или, по крайней мере, решен), но может ли он кому-нибудь помочь ...

0 голосов
/ 16 августа 2011

Возможно, вы захотите заглянуть в Джеспу. Это кажется немного более прямым, чем Kerberos, но обеспечивает хорошие возможности ntlm sso.

0 голосов
/ 08 января 2009

Позже я нашел довольно похожий вопрос Извлечение пользовательских данных NTLM Active Directory в Rails без IIS с хорошими ответами.

0 голосов
/ 08 января 2009

Да, это возможно. Это часто используется в приложениях интрасети, где пользователи. Windows использует NTLM или Kerberos для авторизации пользователя с помощью центральной службы, обычно Active Directory на платформе Windows. На платформе .NET информация о текущем пользователе может быть доступна через экземпляр System.Threading.Thread.CurrentPrincipal.Identity .

0 голосов
/ 08 января 2009

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

Кроме этого, я не уверен, что вы имеете в виду.

...