Аутентификация аутентификации Windows с использованием Javascript - PullRequest
12 голосов
/ 19 июля 2011

Я должен перенести своего клиента с одного сайта на другой. Это происходит на стороне клиента. На этом втором сайте используется стандартная система проверки подлинности Windows. Так всплывает окно входа в систему. Мне нужно пропустить это всплывающее окно и аутентифицировать моего клиента на втором веб-сайте с помощью JavaScript, а затем перенаправить его на второй веб-сайт. Нет проблем с безопасностью, даже если я поместил учетные данные в файл javascript, поскольку вся эта система работает в интрасети. Так как же аутентифицировать клиента на втором сайте?

Я нашел эту тему Как передать Windows-аутентификацию веб-сервису с помощью jQuery?

Но это не работает. Когда я смотрю заголовок запроса 2-го URL, он не содержит тег авторизации.

Ответы [ 3 ]

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

Если это обычная аутентификация и вы не против раскрытия учетных данных, почему бы вам просто не вставить имя пользователя и пароль в URL? Например:

http://username:password@www.domain.com

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

4 голосов
/ 27 августа 2011

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

На самом деле это возможно при аутентификации NTLM. Вам нужен плагин AuthenNTLM , который будет аутентифицировать пользователя с помощью Internet Explorer. Пример синтаксиса будет

<Location />
    PerlAuthenHandler Apache::AuthenNTLM 
    AuthType ntlm,basic
    AuthName test
    require valid-user

    #                    domain             pdc                bdc
    PerlAddVar ntdomain "name_domain1   name_of_pdc1"
    PerlAddVar ntdomain "other_domain   pdc_for_domain    bdc_for_domain"

    PerlSetVar defaultdomain wingr1
    PerlSetVar ntlmdebug 1
</Location>
## taken from the documentation

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

На стороне клиента Internet Explorer и Firefox должны иметь возможность автоматически входить в систему после некоторой конфигурации (Firefox требуется немного особая забота - что может быть достигнуто путем установки переменных конфигурации во время развертывания ).

2 голосов
/ 27 августа 2011

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

Похоже, что для этого нет простого решения JS.

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