Как обеспечить безопасность веб-сервисов RESTful (ПРОВАЙДЕР) - PullRequest
1 голос
/ 11 декабря 2011

Мне нужны безопасные услуги Restfull в провайдере.Я хочу, чтобы у пользователя была авторизация для использования службы REST, и я могу генерировать использование stadistic или просто не разрешать вызывать службы REST, если не зарегистрирован разработчик.

Я думал о том, что пользователь отправиладрес электронной почты и пароль в URL (http://autor.derf.com/api/search/email?=dsdfd@gmail.com&passwd=dasffsdf;), но это не очень безопасно.

Также я прочитал о oauth 2.0, но документация очень плоха для Java.

Есть ли другой способиметь RESTful API с авторизацией?

Мне нужен доступ Restfull API через Iphone, Android, Windows Phone и Интернет

Заранее спасибо;)

1 Ответ

1 голос
/ 11 декабря 2011

Если вы планируете написать все клиенты для службы самостоятельно (iPhone, Android и т. Д.), То отправка электронной почты и пароля - достойная альтернатива, если поставщик связывается по безопасному транспортному уровню (например, SSL / HTTPS).

Вы всегда можете добавить поддержку OAuth 1 или 2 позже, если считаете, что хотите сделать свои API общедоступными. (Вся идея с OAUth состоит в том, чтобы защитить пароли пользователей, а также получить более точный контроль над тем, какие API могут использовать клиент и как долго).

Но в вашем случае я бы по крайней мере рассмотрел возможность использования базовой аутентификации, в которой типичный HTTP-запрос выглядит примерно так:

GET /path/to/api HTTP/1.1
Host: www.example.com
Authorization: Basic aHR0cHdhdGNoOmY=

Хеш после "Basic" просто кодируется base64 "username:password", или в вашем случае "email:password". Если кто-то перехватывает его, легко просто расшифровать его, чтобы получить учетные данные пользователя в виде простого текста. Так что HTTPS является обязательным.

" Подробнее о базовой аутентификации в википедии .

...