2008-09-29 7 views
6

Я считаю, что мы можем разрешить Firefox отправлять данные NTLM на сайты SharePoint для автоматической аутентификации, и я думаю, что это можно сделать с IIS.Извлечение данных пользовательских данных NTLM Active Directory в Rails без IIS

Я хотел бы сделать то же самое с внутренним сайтом Rails.

Кто-нибудь знает, как я могу аутентифицировать пользовательскую информацию типа NTLM с помощью установки Apache/mongrel (при условии, конечно, что она уже запущена в окне Windows внутри домена Active Directory)?

ответ

2

Я предполагаю, что вы уже разработали, какие HTTP-заголовки вам нужно отправить, чтобы получить firefox и IE для отправки файлов аутентификации NTLM и просто нужно обрабатывать их на стороне сервера?

Вы можете использовать некоторые из ruby's win32 libraries для доступа к основным функциям проверки подлинности Windows, которые обрабатывают NTLM.

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

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

Если вы не можете найти это, вам придется написать расширение ruby ​​C. Я сделал это на linux, и расширение ruby ​​довольно просто, но вы можете обнаружить, что API проверки подлинности Microsoft немного больно.

Надеется, что поможет вам начать работу на правильном пути :-)

2

Вы можете также использовать Apache ntlm module, который должен пройти заголовок и далее к приложению с именем аутентифицированного пользователя. Этот модуль выглядит немного старым, но предлагает некоторые другие модули, которые могут удовлетворить ваши потребности.

10

Я создал tutorial on how to install patched mod_ntlm module для Apache на Linux и как передать аутентифицированное имя пользователя NTLM в Rails и как создать сеанс Rails из этого. Поэтому вам не нужен сервер Windows для запуска приложения Rails.

Здесь вы также можете узнать, как включить автоматическую проверку подлинности NTLM в Firefox - введите «about: config» в поле местоположения, а затем выполните поиск «network.automatic-ntlm-auth.trusted-uris». Там вы можете ввести серверы, для которых вы хотите использовать автоматическую аутентификацию NTLM.

+0

Это потрясающе. – 2009-09-17 18:18:57

2

Старый вопрос, который я знаю, но я наткнулся на это, ища аналогичный ответ.

Вы можете использовать описанные здесь методы (http://blog.rayapps.com/2008/12/02/ntlm-windows-domain-authentication-for-rails-application/). Однако mod_ntlm предназначен для проверки подлинности Windows на машине UNIX/Linux. mod_auth_sspi - это то, что вам нужно для аутентификации winNT от apache под окнами.

4

Немного дополнительной информации в случае, если кто-нибудь наткнется на это.

Я хотел сделать что-то, что, по моему мнению, было довольно простым - извлечь имя пользователя Windows пользователей с помощью NTLM из приложения Rails, работающего на Mongrel/Windows (на самом деле InstantRails). Написав базовый код, управляйте различными рукопожатиями (используя отличную библиотеку NTLMRuby по адресу http://rubyforge.org/projects/rubyntlm/), и заставив его отлично работать в Firefox, я был несколько разочарован тем, что IE не работал.

Mongrel не поддерживает keep-alives во время обмена сообщениями типа 1/2/3 (по крайней мере изначально, я считаю, что у него есть взлома/исправления), с которым IE и Firefox оборачиваются.

Таким образом, аутентификация сервера Rails, работающего в Windows, с удаленной службой NTLM (например, Sharepoint или другого веб-сайта) достаточно прост, но аутентификация браузера IE от сервера Rails, работающего на Windows, не так много с Mongrel. IIS будет вариантом, который может быть базовым Apache с FastCGI. Первый чувствует себя немного неуклюжим, и последнее не будет таким быстрым, как Монгрель.

2

Данный проект выглядит многообещающим и ищет участников:

Я еще не пробовал это. На данный момент я планирую реализовать решение Раймонда, поскольку он, кажется, имеет большой успех.

0

Отъезд Waffle. Он обеспечивает SSO на серверах Windows на Java с использованием API Win32. Существует ряд реализованных фильтров (сервлет, клапан котла, пружинная защита).

 Смежные вопросы

  • Нет связанных вопросов^_^