2014-01-12 3 views
0

Я как можно больше создаю API, соответствующий принципам RESTful. Запрос в обсуждении - позволить пользователю проверить его/ее кредиты, доступные в системе. В момент запроса система проверяет пользователя, сравнивая предоставленное имя пользователя и пароль уже в системе. Обратите внимание, что изменение способа аутентификации (на OAuth или тому подобное) на данный момент не является опцией.Использование метода GET в RESTful API, где требуется аутентификация

Поскольку это запрос «Чтение», используется метод GET. Таким образом, я бы следующее:

GET http://mydomain.com/credit?username=XYZ&password=123 

Следуя RESTful принцип и использовать глагол правильно, я боюсь, что имя пользователя и пароль, легко читаемым/доступным. В сценарии, отличном от API, я бы просто использовал обычную форму POST с SSL ...

Неужели я ошибаюсь, чтобы принять упомянутый выше риск?

+0

После прочтения ответов и предложенных статей и механизмов, я считаю, что использование SSL будет лучшим подходом. Важно понимать, что, придерживаясь принципа REST, я не должен доводить до крайности до такой степени, что это становится догматическим. – kenanng

ответ

2

Вы совершенно правы, что разоблачение имени пользователя и пароля в виде простого текста в строке запроса - плохая идея. Как хуже, чем последние три фильма «Звездные войны».

Вы должны быть в порядке, если один и тот же запрос выполняется через SSL (при условии получения доверенного сертификата).

В REST также есть множество других механизмов для обеспечения безопасности, таких как спецификации DOSETA для цифровых подписей, JSON Web Signature и Encryption и т. Д. Но вы, казалось, намекали, что это не вариант.

+0

Спасибо за подтверждение. Это дает мне goosebumps, кодирующие имена пользователей и пароли в приложении нашего клиента, особенно когда они не сообразительны. На самом деле я пытаюсь обойти текущий метод проверки подлинности, чтобы увидеть, возможно ли реализовать предложенные выше механизмы. Являются ли подходящие пары идентификаторов приложений и приложений? – kenanng

+1

REST не указывает какие-либо механизмы безопасности. Однако HTTP позволяет вам указывать информацию авторизации в заголовке 'authorization'. –

1

Заголовок Http Authentication предназначен для хранения информации, такой как имя пользователя и пароль. Вы должны использовать это.

Смежные вопросы