¿Hay algún mecanismo de inicio de sesión único gratuito para Android que funcione correctamente con aplicaciones que no sean webapps? Diga algo similar a ...Android SSO (inicio de sesión único) para la aplicación
Ejecuta mi aplicación y la utiliza hasta que solicita del servidor de aplicaciones que requiere autenticación. Responde a esa solicitud con un token aleatorio que el servidor asociará con usted durante un breve período de tiempo.
La aplicación le presenta un campo de nombre de usuario, un campo de contraseña y un botón de enviar.
Ingrese su nombre de usuario y contraseña. La aplicación luego reenvía su nombre de usuario y contraseña hash, junto con el token generado por el servidor de la aplicación, al servicio de inicio de sesión.
El servicio de inicio de sesión determina si su nombre de usuario y contraseña son válidos o no. Si lo están, marca la hora digitalmente y firma el token, y devuelve el token firmado a la aplicación.
La aplicación retransmite el token firmado al servidor.
El servidor verifica la firma, se asegura de que sea válida y esté firmada por una autoridad en la que confía, y procede como si el usuario le hubiera presentado un nombre de usuario y una contraseña locales válidos.
sospecho sólo estoy perderse en la nomenclatura, pero la impresión que he conseguido hasta ahora es que todos los proveedores habituales de SSO - Twitter, Facebook, etc - sólo permiten a los usuarios iniciar sesión en el uso un navegador normal, y que o bien no está permitido hacer lo que describí, o hacen algo para hacerlo imposible con algo más que un navegador normal (como crear dinámicamente el formulario de inicio de sesión a través de Javascript para evitar que los desarrolladores lo intenten) usar sus propias aplicaciones como fachada de inicio de sesión).
Alternativamente, ¿existe cualquier flujo de trabajo así ...
Lanzas mi aplicación y utilizarlo hasta que el servicio web que requiere que inicie sesión. El servidor de aplicaciones genera un testigo y lo devuelve al la aplicación.
La aplicación genera un nuevo navegador a través de un intento que lo envía al sitio web del proveedor de inicio de sesión, pasando el token por intención al navegador (y finalmente al proveedor) como un formulario POST.
Inicia sesión con la ventana del navegador y la ventana del navegador se cierra, volviendo a mi aplicación.
El proveedor de inicio de sesión firma el token y lo envía directamente a mi servidor de aplicaciones a través de HTTP POST para que pueda observar su envío, verificar el certificado y tratarlo como si fuera un nombre de usuario y contraseña válidos enviados directamente por el usuario al servidor de la aplicación.
¿Podría usar openids? – ekawas
Er, tal vez. En el caso de OpenID, supongo que una mejor pregunta podría ser: "¿existe alguna explicación coherente de cómo usar OpenID en una aplicación real de Android con usuarios no teóricos?" Hasta ahora, todo lo que he tropezado ha sido algo así como "Así se supone que xxx funciona, pero hasta la fecha nadie lo ha logrado aún ... o lo hicieron, pero algo que sucedió unos meses después rómpelo." – Bitbang3r
echa un vistazo a http://code.google.com/p/openid4java/ Aparentemente, se ha modificado para ser utilizado en android (http://groups.google.com/group/openid4java/browse_thread/thread/2d5ae103e03da768/2dffae7fbd05d1d3? Lnk = gst & q = android # 2dffae7fbd05d1d3) – ekawas