Как я могу использовать сочетание OpenID Appengine и OAuth facebook для аутентификации в AppEngine? - PullRequest
6 голосов
/ 04 октября 2011

Appengine поддерживает федеративную регистрацию, при которой произвольные поставщики OpenID могут добавляться в список сторон, которые могут аутентифицировать пользователя. Однако некоторые организации, особенно Facebook, не поддерживают OpenID. Как можно объединить поддержку OpenID, предоставляемую GAE, с механизмами, которые могут поддерживать OAuth или другие механизмы входа в систему?

Подробнее (предполагается, что GAE Python) ...

Мое понимание того, как механизм OpenID предназначен для работы, выглядит следующим образом:

  • Я выбираю Объединенный вход в систему из параметров конфигурации моего приложения
  • Это позволяет мне легко добавлять поставщиков OpenID через create_login_url механизм
  • Существует некоторое управление сессиями Google, используемое для отслеживания аутентифицированных Пользователь * * 1013
  • Я управляю доступом к ресурсам, используя login: required в моем app.yaml
    • Управление сеансом проверит, аутентифицирован ли пользователь прежде чем разрешить доступ к этим ресурсам

Проблема, с которой я столкнулся, заключается в том, что я не вижу, как этот подход согласуется с OAuth Facebook - если доступ к ресурсам контролируется Google (за app.yaml), где можно вставить аутентификацию Facebook?

Примечания:

  • Я знаю, что OpenID и OAuth разные - меня интересует только использование Facebook для аутентификации прямо сейчас
  • Я уверен, что есть довольно много разных способов справиться с этим - мне просто интересно, есть ли какой-то стандартный подход / лучшие практики

Ответы [ 2 ]

4 голосов
/ 05 октября 2011

Я немного покопался в этом, и я пришел к выводу, что невозможно интегрировать стандартные механизмы аутентификации Appengine (т.е. те, которые предоставляются «бесплатно» в Appengine) с OAuth Facebook.В частности, элементы управления app.yaml могут относиться только к стандартным механизмам Google, и нет возможности расширить их для включения OAuth Facebook.Причина этого заключается в том, что стандартные механизмы Google управляют сессиями, и отсутствует механизм добавления новых элементов управления сессиями, которые распознаются элементами управления app.yaml.

Конечно, можно интегрировать учетные записи Googleи другие механизмы входа в систему с OAuth от Facebook на Appengine, но для этого вам нужно повторить некоторые функции, которые Google предоставляет в своих стандартных механизмах аутентификации (в частности, сеанс mgmt).

Я выдвинул более общую информациювопрос, сравнивающий различные варианты социальной аутентификации, возможные с Appengine, поскольку я думаю, что это интересно / полезно, но немного выходит за рамки этого вопроса: это здесь

2 голосов
/ 04 октября 2011

Вы можете взглянуть на Tipfy инфраструктуру, которая имеет аутентификацию Facebook расширение , которая позволит вашим пользователям использовать свой логин Facebook для аутентификации.

...