Захватывающий портал для удовлетворения моих потребностей

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

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

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

EDIT: Я принял ответ как ответ на свой вопрос, однако после изучения кодирования метода на основе сокетов у меня нет времени.

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


person Russ Bradberry    schedule 10.01.2009    source источник


Ответы (4)


Что ж, в настоящее время я действительно кодирую только в .NET, у некоторых OSS могут быть лучшие идеи.

В любом случае я не вижу возможности сделать это без использования прокси, предпочтительно прозрачный прокси-сервер на шлюзе. Должны быть люди, которые писали такие вещи. Конечно, у каждой коммерческой точки доступа Wi-Fi есть такая точка доступа, но вы, вероятно, хотите, чтобы она работала на сервере, а не на устройстве.

У меня нет реального представления об этом, но я думал об этом в прошлом.

Возможно, вы сможете найти маршрутизатор / брандмауэр, в котором есть эта функция. У Microsoft IAS есть подключаемый модуль, который делает это (вряд ли он будет дешевым). Краткий взгляд на Google не нашел многого в том, что касается другого программного обеспечения, которое делает это.

Wingate — возможно, я не мог понять

В противном случае вы можете написать прозрачное прокси-приложение (это означает, что если вы не напишете встроенный код, вам нужно будет использовать сервер приложений в качестве шлюза по умолчанию) или просто обычный прокси-сервер, если вы можете заблокировать настройки прокси-сервера браузера пользователей. Я предполагаю, что кодирование это, возможно, не простой вариант! Но это возможно. Вы даже можете использовать IIS и ASP.NET.

iisproxy — это прокси-сервер, реализованный как фильтр IIS ISAPI с исходным кодом. Я подозреваю, что это в C или C++.

В Codeplex используется обратный прокси-код пример. Вы можете изменить его и расширить до полного прокси.

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

Мне было бы интересно узнать, что вы или кто-либо еще придумаете, потому что я всегда хотел, чтобы AUP появлялся с окном продолжения один раз в день для пользователей в нашем офисе. Еще лучше, если бы прокси-сервер собирал эту информацию, он мог бы указать, сколько времени пользователь провел вчера в Facebook и т. д. Как раз достаточно, чтобы изменить поведение людей, я думаю. На самом деле существует множество полезных вещей, которые можно сделать с помощью легко изменяемого или расширяемого HTTP-прокси.

person Christopher Edwards    schedule 10.01.2009
comment
Похоже, это хороший план, я подумаю о кодировании приложения на основе сокетов. У меня нет никакого опыта в этом, но я держу пари, что это было бы большим усилием обучения. - person Russ Bradberry; 13.01.2009
comment
пожалуйста, смотрите мое редактирование выше, так как я не смог использовать этот метод. - person Russ Bradberry; 13.01.2009

Кристофер Эдвардс более или менее прав. Captive-портал — это, по сути, брандмауэр, который прозрачно перенаправляет все соединения на локальный веб-сервер, запрашивая аутентификация. После успешной аутентификации правила брандмауэра перенастраиваются для IP-адреса аутентифицированного пользователя, чтобы он / она мог получить доступ в Интернет или другую сеть.

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

У меня есть опыт работы с дистрибутивом OSS под названием m0n0wall, который основан на дистрибутиве BSD и может быть встроен непосредственно в специальное оборудование или установить на любой ПК. Этот дистрибутив, хотя и OSS, является действительно профессиональным и предлагает в основном ту же или большую функциональность, чем любое коммерческое устройство FW (например, Watchguard продукты или Продукты Cisco). Он предлагает интерфейс веб-администрирования для полного администрирования брандмауэра.

Единственная проблема, если вы решите пойти по этому пути, заключается в том, что у Captive-портала m0n0wall есть только два способа аутентификации: список локальной базы данных пользователей или внешний Radius-сервер. В вашем случае вам нужно настроить внешний сервер Radius, который интегрируется в службы аутентификации AD. Вот пример того, как это сделать.

person Fernando Miguélez    schedule 10.01.2009

Вот как это работает. Тебе нужно:

  • общий брандмауэр iptable,
  • открытая прошивка маршрутизатора, такая как dd-wrt, которая имеет больше возможностей для поддержки точки доступа.
  • сервер типа apache
  • dhcp3-server в качестве DHCP-сервера
  • bind9 в качестве DNS-сервера, чтобы пользователям не приходилось вручную настраивать сетевую конфигурацию своего компьютера при подключении к точке доступа.
  • PHP или другой язык для написания скрипта на стороне сервера по вашему выбору.

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

Вот как это работает:

  1. Каждый пользователь, подключенный к беспроводной точке доступа, подключается к Интернету через шлюз.
  2. Сам шлюз действует как маршрутизатор и брандмауэр (и, вероятно, также действует как веб-сервер портала, как в этом эксперименте).
  3. Каждый пакет данных HTTP, направляемый в Интернет от неаутентифицированных пользователей, «помечается» брандмауэром специальным кодом, чтобы его можно было перехватить (перенаправить) на веб-сервер портала.
  4. Веб-сервер портала прозрачно предоставляет пользователю веб-страницу аутентификации и идентифицирует используемый им компьютер.
  5. Пользователь принимает / аутентифицирует себя на веб-сервере, поэтому его компьютерная идентификация (в данном случае MAC-адрес сетевого интерфейса) вносится в белый список брандмауэра.
  6. Пока пользовательские сетевые интерфейсы находятся в белом списке брандмауэра, отправленные с них пакеты не помечаются для перехвата. Затем пакеты пересылаются маршрутизатором в Интернет без повторного перехвата на веб-портале.
person Gabriel Dagadu    schedule 25.01.2013
comment
Ваш ответ предполагает сложный набор задач, и его трудно понять. Пожалуйста, поместите шаги в список пунктов и дайте несколько ссылок. В цитате слишком длинные строки, и я не вижу смысла в том, чтобы она была цитатой. Пожалуйста, объедините его с остальным текстом. Спасибо! - person vonbrand; 25.01.2013

DNS Redirector – это авторизованный портал, где вы можете создавать свои собственные страницы приветствия/блокировки в HTML/ASP или любом другом формате. Поскольку на вашем сервере уже установлена ​​Windows, почему бы не использовать для этого IIS и ASP.

person TheThankfulOne    schedule 24.07.2013