2014-06-17 3 views
15

Позволяет использовать Facebook для этого примера.Как Facebook аутентифицирует/авторизует своих официальных клиентов?

Я предполагаю, что FB использует собственные публичные API (а также внутренние, которые они могут использовать), и, поскольку они используют OAuth 2, было бы безопасно предположить, что у них есть «специальные регистрации клиентов» с разрешение на использование Предоставление полномочий по предоставлению прав владельца ресурса?

Как вы знаете, при входе в Facebook из своих собственных официальных приложений, они не поп открыть браузер, прошу вас, если вы позволить Facebook использовать Facebook, так если они используют OAuth как они это делают безопасно?

Мы все читали, что Twitter got their consumer keys leaked, как избежать этого?

Я не эксперт по вопросам безопасности, и у меня нет опыта в обратном проектировании, я просто в ситуации, когда я должен сам выполнить авторизационный сервер OAuth, и мы хотим разоблачить наши API третьим сторонам, но поскольку мы у нас есть «официальные родные приложения», мы хотели бы использовать грант Credential Credential Resource Owner для лучшего пользовательского опыта.

В соответствии с OAuth 2 spec, родные приложения должны не включают в себя клиентские секреты, но как это улучшается? Способ, которым я это вижу, если вы не включаете этот секрет, и ваш идентификатор клиента извлекается и используется для предоставления паролей, единственный способ отменить его - полностью удалить идентификатор клиента с вашего сервера авторизации.

Я пропустил что-то очевидное здесь? Как это делают «большие парни»?

+0

На какой клиент вы ссылаетесь? (ссылка для скачивания) – h3xStream

+0

@ h3xStream их клиенты iOS/Android/WP. – Jeff

ответ

1

Большая разница в том, что официальное приложение Facebook знает ваше имя пользователя и пароль и поэтому не нужно вызывать браузер, потому что они могут напрямую аутентифицироваться.

Как стороннее приложение, я не могу (хорошо, я мог бы, но по соображениям конфиденциальности я не буду) запрашивать у пользователей электронную почту и пароль. Как официальное приложение, вы можете сделать это и, таким образом, напрямую выполнить логин (это может произойти с помощью недокументированной конечной точки REST) ​​

+0

Но сохраняют ли они ваши учетные данные или используют ли они пароль для пароля oauth? – Jeff

+0

Если oauth, как они предотвращают утечку учетных данных клиента? – Jeff

+0

Я просто контролировал FB-приложение с Fiddler. Они, похоже, используют свой собственный OAuth с предоставлением пароля, но я не знаю, если они хранят учетные данные пользователей или используют другой способ. Однако я считаю, что они хранят их, потому что это, кажется, самый простой способ. –

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