2013-09-03 3 views
1

Я считаю, что javascript ограничен использованием только HTTP, но мне было любопытно, есть ли что-то там, что может позволить хром-приложению сделать запрос LDAP с клиентской стороны (без необходимости проходить через мой веб-сервер для подключения к LDAP и проверки учетных данных). Моя цель заключается в том, чтобы мои пользователи вошли во внутреннее веб-приложение, используя свои сетевые учетные данные, не дожидаясь моего сервера, чтобы установить соединение HTTPS.LDAP-запрос из приложения Chrome

Кроме того, есть ли какие-либо проблемы с безопасностью, такие как установка?

+0

Не думайте так. Даже если вы могли бы использовать js для создания TCP-подключений к любому серверу на любом порту непосредственно из браузера (возможно, WebSockets? Не знаете, как они работают), вам нужно будет реализовать весь протокол ldap в javascript, что нелегкая задача даже в большинство серверных языков. –

+0

Похоже, кто-то написал LDAP-клиент для узла https://github.com/jeremycx/node-ldap. Не уверен, что это приблизит вас. – kzahel

ответ

4

Приложение Chrome действительно способно делать то, что вы хотите. Вы должны использовать API chrome.socket для установления соединения непосредственно с сервером LDAP.

Однако на ваш вопрос задано несколько аварийных сигналов. Если ваш клиентский код отдельно проверяет LDAP для учетных данных и запрашивает веб-приложение для контента, то что мешает злоумышленнику или ошибочному клиенту пропустить шаг LDAP и просто захватывать контент без авторизации непосредственно из веб-приложения? Если ваше веб-приложение предполагает только доверенных клиентов, то зачем вообще вообще проверять LDAP? В реальной жизни этот дизайн будет напоминать передачу банкноту банку: «Мне не нужно показывать вам свой идентификатор, потому что я обещаю, что уже показал его охраннику, размещенному вне банка. Пожалуйста, дайте мне все деньги в моем аккаунте. " Это гораздо более обычное дело - и безопасное - для проверки учетных данных, будь то LDAP или иначе, должно выполняться веб-приложением за HTTP/HTTPS. (OAuth - это еще одна история с точки зрения ее механики, но в принципе это то же самое.)

«не нужно ждать на моем сервере, чтобы установить соединение HTTPS»: совершенно неясно, что вы подразумеваете под этим. HTTPS не имеет ничего общего с аутентификацией (за исключением случаев, когда это подтверждает подлинность сервера). Вы действительно имеете в виду скорость квитирования SSL? SSL-квитирование обычно составляет от 200 до 500 миллисекунд. Если ваш необычный случай использования, это время не имеет значения. И снова HTTPS, как обычно, развертывается, является транспортной безопасностью, не имеющей ничего общего с аутентификацией клиента. Даже если бы вы вычислили нестандартный, но действительный способ аутентификации клиентов, вы все равно хотите, чтобы разговор происходил через SSL, если не было действительно ничего чувствительного к содержимому (в этом случае вам, вероятно, не понадобится проверка подлинности клиента внутри сети первое место).

Другие вопросы выдающиеся, но вы еще недостаточно объяснили свой вариант использования.

TL; DR: да, вы можете сделать это с помощью приложения Chrome. Но да, есть много проблемы безопасности с этим дизайном.

+0

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

+0

Логин меньше для безопасности и более того, что я знаю, «кто» я «говорю». Информация, отображаемая в приложении, специфична для пользователя. Аутентификация с помощью LDAP показала лучший способ ограничить способность конечных пользователей просматривать информацию другого пользователя одновременно с предоставлением мне несколько достоверной информации о том, с кем я разговариваю. В действительности каждый имеет доступ к одной и той же информации, я просто извлекаю информацию, относящуюся к определенному человеку. Приношу свои извинения, если я недостаточно объясняю это. cudos sowbug на ответе! Это то, что мне нужно! –