Дайджест-аутентификация HTTP

Я хочу использовать HTTP Digest Authentication с центральной базой данных, в которой хранятся имена пользователей и зашифрованные пароли. Эти данные должны использоваться различными серверами, такими как Apache httpd или Tomcat, например. Клиентами будут люди с браузерами и другими приложениями, взаимодействующими RESTful способом.

Насколько я понимаю, я не мог использовать таблицу с хешированными паролями. Это возможно только для храненияHA1 = MD5 (имя пользователя: область: пароль) где требуется простой текстовый пароль - правильно?

С другой стороны, представляется возможным использовать хешированные пароли с Apache httpd:

Apache httpd doc говорит:

Значение первого столбца первой строки, возвращаемой оператором запроса, должно быть строкой, содержащей зашифрованный пароль.

Работает ли это с дайджест-аутентификацией? Нет параметра для указания алгоритма хеширования. Как Apache httpd решает, какой алгоритм использовать?

RFC 2617 говорит:

4.13 Хранение паролей

Для дайджест-проверки подлинности агент проверки подлинности (обычно сервер) должен хранить некоторые данные, полученные от пользователя.имя и пароль в "файл паролей " связанный с данным царством. Обычно это может содержать пары, состоящие из имени пользователя и H (A1), где H (A1) - это усвоенное значение имени пользователя, области и пароля, как описано выше.

Похоже, пароль должен быть открытым текстом.

Спецификация Servlet 3.0 гласит:

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

Что "открытый текстовый эквивалент пароля Вот? Хэш пароля?

Документация Tomcat говорит:

При использовании переваренных паролей с аутентификацией DIGEST открытый текст, используемый для генерации дайджеста, отличается. В приведенных выше примерах {cleartext-password} должен быть заменен на {username}: {realm}: {cleartext-password}. Например, в среде разработки это может принимать форму testUser: localhost: 8080: testPassword.

Вот пароль в виде открытого текста.

Итак, можно ли использовать аутентификацию HTTP Digest с уже зашифрованными паролями или иметь пароли в виде открытого текста?

Должен ли пользователь повторно вводить свои учетные данные, если он запрашивает страницу из другого субдомена?

Удаляет ли браузер кэшированный пароль при закрытии вкладки или только при закрытии целого? Может быть, это отличается от браузера к браузеру - яМне было бы интересно, какой браузер его удаляет, а какой хранит.

Общий вопрос в том, подходит ли дайджест-проверка подлинности для моего сценария с базой данных центрального пользователя с уже зашифрованными паролями. Или мне лучше использовать сервис единого входа на основе сеанса?

Ответы на вопрос(2)

Ваш ответ на вопрос