OAuth - встраивание секретности клиента в ваше приложение?
Я смотрю на реализацию oauth twitter, предлагаемую здесь:
https://dev.twitter.com/docs/auth/oauth
и oauth-библиотеки, такие как signpost:
http://code.google.com/p/oauth-signpost/
они оба говорят об использовании секретности клиента во время потока oauth, что означает для моего клиентского приложения, мне нужно будет хранить секрет в самом приложении. Это, вероятно, опасно, поскольку кто-то может захватить секрет из моего приложения. Существуют ли какие-либо методы хранения секретности в моем приложении? Неужели я неправильно понимаю поток oauth?
Спасибо
Ответы
Ответ 1
Нет способов хранения учетных данных клиента в приложении native или JavaScript, не делая их практически общедоступными. Кроме того, размещение этих учетных данных на прокси-сервере и общение с сервером на сервере (так что учетные данные не отображаются) также ничего не решает. Теперь у вас есть проблема аутентификации клиента с прокси.
Правильное решение - иметь специальную поддержку для собственных приложений, предоставляемых службой OAuth. OAuth 2.0 использует предварительно зарегистрированные URI перенаправления и другие методы для обеспечения разумной проверки подлинности клиента для таких клиентов.