He leído las otras preguntas y sobre todo hablan de la seguridad de hacerlo. Eso no es completamente mi preocupación, principalmente porque el sitio web es cuestión es un juego basado en navegador. Sin embargo, el problema más grande es el usuario: no todos los usuarios saben leer y escribir lo suficiente como para comprender OpenID. Claro, RPX lo hace bastante fácil, que es lo que usaré, pero ¿y si el usuario no tiene una cuenta en Google o Facebook o lo que sea, o no confía en que el sistema inicie sesión con una cuenta existente? Tendrían que obtener una cuenta en otro proveedor; estoy seguro de que la mayoría sabrá cómo hacerlo, y mucho menos se molestará en hacerlo.Usando OpenID como el único método de autenticación
También existe el problema de cómo administrarlo en la aplicación. Un usuario puede querer usar múltiples identidades con una sola cuenta, por lo que no es tan simple como el nombre de usuario + contraseña para tratar. ¿Cómo almaceno las identidades OpenID de un usuario en la base de datos? El uso de OpenID también me da una ventaja: RPX puede proporcionar una amplia información de perfil, por lo que puedo rellenar el formulario de perfil y pedirle al usuario que lo edite según sea necesario.
Actualmente tengo esto:
Users:
------
ID Email Etc.
-- --------------- ----
0 [email protected] ...
1 [email protected] ...
UserOpenIDs:
------------
ID UserID OpenID
-- ------ ------
0 0 0
1 0 2
2 1 1
OpenIDs:
--------
ID Provider Identifier
-- -------- ----------------
0 Yahoo https:\\me.yahoo.com\bob#d36bd
1 Yahoo https:\\me.yahoo.com\alice#c19fd
2 Yahoo https:\\me.yahoo.com\bigbobby#x75af
Con estas claves externas:
UserOpenIDs.UserID -> Users.ID
UserOpenIDs.OpenID -> OpenIDs.ID
es que la manera correcta de almacenar identificadores OpenID en la base de datos? ¿Cómo coincidiría con el identificador que RPX me dio con uno en la base de datos para iniciar sesión en el usuario (si se conoce el identificador).
Así que aquí están las preguntas concretas:
- ¿cómo iba a hacerlo accesible a los usuarios que no tengan un OpenID o no querer usar uno? (preocupaciones de seguridad sobre, por ejemplo, iniciar sesión con su cuenta de Google, por ejemplo)
- ¿Cómo guardo el identificador en la base de datos? (No estoy seguro si las tablas de arriba son correctas)
- ¿Qué medidas debo tomar para evitar que alguien inicie sesión como otro usuario y felizmente haciendo algo con su cuenta? (como entiendo, RPX envía el identificador a través de HTTP, entonces lo que cualquiera debería hacer es agarrarlo y luego ingresarlo en el campo "OpenID")
- ¿Qué más debo tener en cuenta cuando uso OpenID?
Hola, nuevo para OpenId, pero considerándolo en mi propio sitio. a su tercera pregunta "medidas ... para evitar que alguien inicie sesión como otro usuario ...", como entiendo OpenId, ** nunca ** acepta una URL de OpenId de una fuente que no es de confianza. en la implementación, su sitio alberga el inicio de sesión de un proveedor, el sitio del proveedor se comunica con usted ** directamente **, por lo que siempre acepta una URL de OpenId desde un sitio confiable. –