Отправка имени пользователя и пароля к веб-сервису

Я разрабатываю веб-сервис, и я должен отправить имя пользователя и пароль в службу в ПОЛУЧИТЬ методе. Это в порядке для отправки этой информации в uri, пока это пробегается через безопасный канал как ssl? Другими словами, у меня может быть uri, который похож на/users/{имя пользователя} / {cleartext_password}?

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

Так, приложение должно будет отправить имя пользователя конечного пользователя и незашифрованный пароль в службу. Сервис возьмет имя пользователя и пароль и проверит, что имя пользователя и хеш пароля соответствуют имени пользователя и хешированному паролю в базе данных. Само приложение должно будет пройти проверку подлинности, прежде чем оно сможет получить доступ к сервису, но я просто задаюсь вопросом, что лучший способ состоит в том, чтобы отправить имени пользователя конечного пользователя и паролю в службу для аутентификации конечного пользователя. Я не делаю для использования метода POST, потому что я просто прохожу проверку подлинности и поэтому не изменяю состояние сервера. Извините за беспорядок.

6
задан Jim 20 May 2010 в 21:10
поделиться

4 ответа

Сделайте следующее.

Отправьте "ключ" и "дайджест".

"Ключ" эквивалентен имени пользователя.

Дайджест" - это SHA1 (или MD5) хэш ключа, URI и "общий секрет" или пароль.

Когда сервер получает его, он вычисляет свою собственную версию дайджеста, основанную на ключе, запрашиваемом URI и "общем секрете" или пароле. Несоответствие дайджестов является ответом на ошибку 401.

7
ответ дан 17 December 2019 в 00:05
поделиться

Вообще говоря, это не очень хорошая идея... Эти данные будут присутствовать во многих файлах журнала, следовательно, данные могут быть видны тем, кто не должен их видеть. По крайней мере, вы должны хэшировать или шифровать их перед отправкой, если это возможно.

Вот соответствующее обсуждение для более подробной информации... Безопасна ли строка запроса HTTPS?

0
ответ дан 17 December 2019 в 00:05
поделиться

Если это идет по защищенному каналу, нет проблем с отправкой имени пользователя и пароля в виде открытого текста. Я бы просто рекомендовал никогда не отправлять их в виде открытого текста через небезопасный канал и не отправлять их повторно для каждого запроса.

Что вы можете сделать, так это сначала пройти аутентификацию в веб-службе (отправить имя пользователя и пароль через ssl в виде открытого текста) и получить от сервера токен, который он распознает. Затем отправляйте этот токен с каждым последующим запросом.

0
ответ дан 17 December 2019 в 00:05
поделиться

SSL действительно шифрует URI, но обязательно обратите внимание на некоторые альтернативы.

HTTP Basic Auth приятный и простой, и хорошо поддерживается браузерами, веб-серверами и т. Д.

Он также не попадает в файлы журнала в той же степени, что и URI.

NB: это просто простой текст Заголовки HTTP, поэтому категорически НЕ рекомендуется для приложений без SSL.

http://en.wikipedia.org/wiki/Basic_access_authentication

0
ответ дан 17 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: