Appengine supports federated login in which arbitrary OpenID providers can be added to the list of parties who can authenticate a user. However, some organizations - notably facebook - don't support OpenID. How is it possible to combine the OpenID support provided with GAE with mechanisms that can support OAuth or other login mechanisms?
More details (GAE Python assumed)...
My understanding of the way the OpenID mechanism is intended to work is as follows:
- I choose Federated Login from my app's configuration options
- This allows me to easily add OpenID providers through the
create_login_url
mechanism - There is some Google session management used to track the authenticated user
- I control access to resources using
login: required
in myapp.yaml
- The session management will check if the user is authenticated before allowing access to these resources
The issue that I have is that I can't see how this approach fits with facebook's OAuth - if the resources are access controlled by Google (per app.yaml
), where is it possible to insert facebook authentication?
Notes:
- I know that OpenID and OAuth are different - I am only interested in using facebook for authentication right now
- I'm sure there are quite a few different ways to deal with this - I'm just wondering if there is some standard approach/best practice