Получить токен уникального идентификатора текущего пользователя AD. - PullRequest
0 голосов
/ 13 июля 2010

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

К сожалению, наша интрасеть не работает на IIS, поэтому я не могу использовать NTLM для аутентификации, которая была бы проще, но не совместима с браузерами, что является одним из требований.NTLM также не подходит, потому что наша интрасеть доступна только в форме intranet.company.com, и, насколько я знаю, NTLM не работает с адресами в этой форме.

Хорошо, теперь вопрос.В настоящее время я нахожусь в процессе создания клиентского приложения для аутентификации в C ++ и мне нужен способ получить некоторый уникальный идентификатор или токен, который бы отличал законно вошедшего в систему пользователя Active Directory от того, кто получил приложение и изменил свое локальное имя пользователяпользователю AD.

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

1 Ответ

0 голосов
/ 13 июля 2010

AD - это просто реализация Microsoft Kerberos.Одной из основных функций Kerberos является создание таких билетов разрешений.Таким образом, с этой стороны ваше решение вовсе не является хакером.Это всего лишь часть проверки, которая выглядит как автокатастрофа.

Однако я полностью потерян из-за проблемы на стороне клиента, которую вы имеете.Весь смысл AD или Kerberos в том, что вы не можете подделать аутентифицированного пользователя.Вы просто запрашиваете у ОС билет для вошедшего в систему пользователя.Неважно, кто завладеет вашим приложением или каким будет его локальное имя пользователя.ОС точно знает, кто вошел в систему.

...