Pregunta

Estoy leyendo sobre de acceso federado para usuarios de Google Cuenta averiguar cómo puedo tener un usuario ingrese a una aplicación web utilizando su cuenta de Google.

Así que hacia el final del proceso, Google devuelve un Google suministra identificador que se adjunta como openid.claimed_id. Esto significa que la aplicación web utiliza este identificador para reconocer al usuario y permitir el acceso a las características de aplicación y datos. Mi pregunta es, es el siguiente identificador estática? ¿Puedo utilizar este identificador para identificación repetidamente el mismo usuario?

¿Fue útil?

Solución

Sí. Considere el valor openid.claimed_id ser el nombre de usuario. Especialmente con Google, pero esto es cierto para cualquier proveedor de OpenID que realmente implementa la 'identidad dirigida', no tienen en cuenta este nombre de usuario para ser correlatible con otros sitios web. Cualquier otra parte que confía, además de su propio sitio web obtendrá un valor claimed_id diferente para el mismo usuario de Google, por diseño.

Además, asegúrese de tratar esta claimed_id como entre mayúsculas y minúsculas .

Otros consejos

La respuesta específica a su pregunta se encuentra en de Google OpenID documentación de la API :

  

El identificador suministrado por Google, que no tiene conexión con real nombre de la cuenta de Google del usuario o contraseña, es un valor persistente; se mantiene constante, incluso si el usuario cambia su nombre de usuario de Google y / o dirección de correo electrónico. Este identificador es también una "identidad dirigida", es decir, Google devuelve un valor diferente a cada usuario de confianza. Google utiliza la openid.realm solicitud de parámetros para reconocer la parte que confía, por lo que si la aplicación de terceros decide cambiar este valor, todos los identificadores de usuario cambiará.

De hecho, me acabo de encontrar con un caso en el claimed_id Google había cambiado para mi usuario de prueba. Estaba llegando al final de la implementación de OpenID en mi aplicación, y por ninguna razón aparentemente la claimed_id en los datos de respuesta se había cambiado.

He estado probando con esta cuenta de las últimas dos semanas, y el claimed_id era lo mismo esta todo el tiempo, como se esperaba. A continuación, zas, cambiado! Miré a los datos de respuesta muchas veces para verificar, y el código subyacente para recuperar los datos no había cambiado.

No estoy seguro de cómo manejar esto en el momento, pero creo que esto me va a tirar de un bucle. Después de la autenticación inicial, los usuarios se registren en el sitio (como era de esperar) y la configuración de un nombre de pantalla. ¿Cómo vamos a comprobar que es el mismo usuario si el claimed_id había cambiado? Ciertamente, no podemos utilizar la dirección de correo electrónico, por las mejores prácticas.

Editar

Ahora tengo pastel en la cara! Me perdí un pequeño detalle, que resultó ser un importante detalle. Cambio mi entorno de desarrollo y era celebrar en una diferente v-host. Este cambio eficazmente el reino, y esto va a cambiar la respuesta claimed_id según los docs.

Esta fue una buena lección para mí, ya que estaba a punto de poner en práctica OID en un subdominio en el que ámbito se estaba estableciendo automáticamente en mi código. Ahora me salvé un dolor de cabeza en el camino, porque no habría sido capaz de utilizar la misma base de datos de usuario en todos los otros subdominios sin romper identidad.

actualizar ámbito

más información

Así como una nota - incluso si está desarrollando su solución de OpenID para uno de sus subdominios, podría ser prudente para que especifique reino a su dominio de nivel superior

.

por ejemplo, openid.realm = http:. //*.Yourdomain.com

Se le permitirá ampliar su página de registro a través de todos sus subdominios y mantener la identidad del usuario a través de ellos.

  

(opcional) reino autenticado. Identifica el dominio que el fin   Se le pide al usuario de confianza. (Ejemplo: "http: //*.myexamplesite.com")   Este valor debe ser consistente con el dominio definido en   openid.return_to. Si no se define este parámetro, Google usará   la URL hace referencia en openid.return_to.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top