Pregunta

La compañía para la que trabajo quiere publicar un sitio web interno para el mundo exterior, pero también quiere identificar a los visitantes de alguna manera fácil. Algunas funciones serán visibles para todos los visitantes, pero la mayoría debe ser visible para los visitantes autenticados. (Y parte de la funcionalidad está restringida a los visitantes administrativos). Si bien la administración está considerando implementar nuestro propio sistema de autenticación, he sugerido usar una tecnología existente que ya está disponible y que nos mantiene alejada de la administración de nombres de usuario / contraseñas. (Porque solo somos aficionados cuando hablamos de seguridad. La autenticación debe ser muy buena).

Así que empecé con OpenID de Google y examiné la biblioteca que proporcionan. Parece fácil de usar y puedo obtener tokens que me dicen que un usuario está autenticado. Pero, ¿cómo identifico a este usuario para poder vincular nuestra información de perfil a su ID / Token / Lo que sea?

Sé que me falta algo, así que para simplificarlo: solo necesito un ejemplo que muestre cómo autenticar al visitante con Google y luego recuperar algún token que pueda usar para vincular a este usuario para siempre. (Por lo tanto, no hay token de sesión). Este token podría usarse para que el usuario complete su perfil.

¿Fue útil?

Solución

Dado que sus etiquetas sugieren que su idioma es C #, le recomiendo DotNetOpenAuth . Es gratis e incluye ejemplos que le mostrarán cómo obtener su token (en términos de OpenID se llama Identificador Reclamado) que puede usar para distinguir entre usuarios.

Para obtener el identificador reclamado (el identificador permanente que está buscando), si está utilizando el control OpenIdTextBox o OpenIdLogin solo controle su evento LoggedIn y obtenga la propiedad e.ClaimedIdentifier. Si lo está haciendo mediante programación (sin controles), el método OpenIdRelyingParty.GetResponse () devuelve una interfaz IAuthenticationResponse que tiene una propiedad ClaimedIdentifier en puede obtenerlo.

Luego puede implementar un ASP.NET RoleProvider (bastante trivial, realmente) que permitirá que algunos Identificadores Reclamados de OpenID pertenezcan a un rol de administrador, permitiendo que sus técnicas de autorización ASP.NET estándar bloqueen progresivamente a las personas en función de cómo ' he autenticado.

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