У нас есть план разработки мобильного приложения с использованием REST-ful. Мы хотим применить OAuth 1.0a, а не OAuth 2.0, потому что мы не используем SSL. Мы также не хотим использовать веб-браузер (мы думаем, что UX на основе PIN-кода не является дружественным). Мы знаем, что это невозможно при обычном потоке OAuth.
Я не эксперт в архитектуре безопасности, но я гуглил в сети и видел, что у кого-то есть реализация, использующая метод входа в систему, например, модель вызов-ответ.
Если нашему приложению не нужно обеспечивать безопасность имени пользователя, и пользователи доверяют нам ввод своего пароля в нашем приложении, можно ли использовать этот метод для обмена токеном доступа? Есть ли недостаток?
- После ответа сервера на несанкционированный токен запроса клиент начинает поток вызов-ответ.
Клиент отправляет запрос на http://www.example.com/login с параметром типа OAuth require: oauth_consumer_key , oauth_token, oauth_signature_method, oauth_timestamp, oauth_nonce и дополнительный параметр username username="username", параметр password, вычисляемый на основе пароля пользователя (который хранится на сервере), oauth_nonce с функцией вывода ключа KDF/хеш-функцией. Клиент вычисляет подпись запроса с описанием OAuth, но отправляет запрос с параметром имя пользователя и другими необходимыми параметрами после пропуска параметра пароля.
Сервер проверяет запрос и возвращает токен доступа.