Почему родной поток Google oauth2 требует секрет клиента? - PullRequest
10 голосов
/ 01 сентября 2011

Согласно документам Facebook oauth2, поток на стороне клиента не требует секретного параметра клиента. Клиентский поток может использоваться как в собственных, так и в мобильных веб-приложениях.

Однако нативный поток Google oauth2 требует секрет клиента http://code.google.com/apis/accounts/docs/OAuth2.html#IA.

В этом случае секретный ключ клиента может быть украден хакером с использованием инструментов обратного инжиниринга.

Может кто-нибудь уточнить, почему это было сделано таким образом?

1 Ответ

11 голосов
/ 20 сентября 2011

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

С https://groups.google.com/group/oauth2-dev/browse_thread/thread/1e714924ebcc7e60/edfaaad5830ff2e8:

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

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

Если вы обеспокоены раскрытием client_secret, здесь также описан поток на стороне клиента: http://code.google.com/apis/accounts/docs/OAuth2.html#CS Насколько я могу судить, поток на стороне клиента не требует client_secret и будет работать нормально. из настольного или мобильного приложения.

-Крис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...