Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Autenticación contra App Engine desde la aplicación de Android con inicio de sesión federado (OpenID)

He seguido el tutorial de Nick Johnson sobre la autenticación contra App Engine de Android

¿Hay alguna forma de obtener el mismo flujo de trabajo (sin inicio de sesión web) con el inicio de sesión federado (aunque el soporte se limite a las cuentas de Google)?

[Editar] Información Adicional

La configuración actual incluye:

  • UserService App Engine configurado para el inicio de sesión federado (openId..gmail, aol, myspace?, …)
  • Facebook (OAuth)
  • Twitter (OAuth)

Todos los tipos de autenticación están envueltos en un UserService , así que puedo llamar a UserService.getCurrentUser() (similar a UserService de Appengine, pero apoya twitter y facebook).

Las cuentas pueden tener varios métodos de autenticación unidos entre sí.

Hasta el momento los clientes están todos basados ​​en web, y las cosas están funcionando muy bien. :RE

Me gustaría:

  1. Agregue un Api público (para aplicaciones web y nativas para móviles),
  2. Utilice el Api internamente para aplicaciones móviles nativas.

¿Cuales son las opciones?

Estaba pensando en limitar la autenticación a las cuentas de Google para la aplicación de Android, con la esperanza de evitar la conexión web en la pantalla. Aún así sería bueno para apoyar a Facebook y Twitter para la web Api.

  • ¿Cómo hacer que AccountManager (authtoken) y OpenID trabajen juntos (sin AppEngine)?
  • OAuth / OpenID - ¿Qué debo usar?
  • OpenId en Android
  • OpenID para aplicaciones de Android que requieren
  • login de vapor con openID en android
  • Credenciales de Webservice - OpenID / Android AccountManager?
  • Integre Google, Yahoo y OpenID en la aplicación Android?
  • Autenticación de Android con Google OpenID. ¿Qué sigue?
  • 2 Solutions collect form web for “Autenticación contra App Engine desde la aplicación de Android con inicio de sesión federado (OpenID)”

    No, OpenID es un estándar de autenticación basado en navegador. Confía en que el usuario esté dirigido a la página de autenticación externa y luego de vuelta a la página de la aplicación.

    Puede hacerlo a través de WebView dentro de un Dialog de Dialog para una experiencia de usuario fluida. Vea el proyecto de código abierto de LeanEngine para un ejemplo de implementación: servidor y cliente . El servidor es un poco complicado ya que admite tanto el inicio de sesión de Facebook como OpenID. OpenID sólo login sería más simple. Básicamente sólo necesita el ejemplo del cliente.

    Sin embargo, si no necesita OpenID y está dispuesto a limitar sus usuarios a la cuenta de Google, puede utilizar Google ClientLogin API . Un ejemplo de uso .

    He estado investigando este tema desde hace varias semanas y finalmente vi la luz al final del túnel. Espero que al menos pueda obtener algunas sugerencias de mi investigación. En primer lugar, me di cuenta (http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the- same-thing) que OpenID y OAuth no son La misma cosa, aunque podrían ser utilizados en conjunto. Mi aplicación de Google App Engine está configurada con la API de Cuentas de Google y actualmente sólo tengo un cliente de Android. Soy un seguidor religioso del famoso blog de Nick Johnson que mencionaste anteriormente. Por lo tanto, utilicé la instancia de AccountManager en el cliente de Android para autenticar sin problemas con mi aplicación de App Engine, sin pedirle al usuario credenciales y sin redirigir a un navegador / webview, etc.

    Al igual que quieres abrir una API pública a tu aplicación GAE, también quiero ampliar mi base de clientes para tener otros clientes como clientes basados ​​en web, API de python, clientes de iOS, etc., y ninguno de estos tiene este práctico AccountManager. Por lo tanto, OAuth es la elección obvia. Este es un artículo de Ikai Lan del equipo de Google App Engine que demuestra el uso de un cliente de python que utiliza OAuth para autenticarse en una aplicación GAE: http://ikaisays.com/2011/05/26/setting-up-an-oauth-provider -en-google-app-engine /

    Lo curioso es que pensé que el uso de Oauth en el cliente requería configurar la aplicación GAE con OpenID / login federado. Pero este no es el caso. Así que la solución para mí, y probablemente para usted también, es simple: en el cliente de Android, use AccountManager por el blog de Nick. Y en otros clientes, utilice Oauth y redirigir al usuario a la página Cuentas de Google para habilitar la autenticación (consulte el artículo de Ikai Lan del que he hablado en el párrafo anterior).

    En pocas palabras, sin embargo, es posible evitar el inicio de sesión basado en web en un cliente Android, pero no en ningún otro sitio. Tienes que autenticar a un usuario al menos una vez, de alguna manera. Ojalá que el inicio de sesión basado en navegador sólo ocurra la primera vez, y el navegador almacena en caché las solicitudes futuras.

    ¡Buena suerte!

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.