2009-06-04 3 views
1

Может ли кто-нибудь разработать разные?NtlmSsp vs kerberos

В настоящее время я использую ntlmssp.authenticaten (jcifs), но, похоже, не умеет getPassword(). он всегда возвращается null

ответ

3

Есть разница.

С Kerberos вам необходимо попросить своего администратора домена для имени участника службы (SPN) для вашего веб-приложения. По сути, это запись в Active Directory с криптографическим ключом, который позволит вашему веб-приложению декодировать запросы на аутентификацию.

С NTLM вам не нужно сотрудничество со своим администратором. Ваше веб-приложение получит некоторую информацию от клиента (т. Е. Браузера), которую он может использовать для попытки входа в систему контроллера домена. Информация от клиента не включает пароль пользователя - это будет слишком неуверенно. Вместо этого фильтр NTLM получает вызов от контроллера домена, передает его клиенту. Клиент хэширует пароль с задачей создать ответ. Когда этот ответ отправляется обратно контроллеру домена в качестве запроса на вход в систему, контроллер домена скажет фильтру jcifs, был ли пароль правильным или нет.

Некоторые классы jcifs имеют метод getPassword, поскольку он позволяет вам напрямую создавать запрос на вход в систему с имени пользователя и пароля. Если вы используете этот подход, а затем задаете пароль, вы можете его восстановить. Но это не тот подход, который используется, когда вы разрешаете браузеру аутентифицироваться для вас, поэтому вы не сможете получить фактический пароль.