Así que finalmente activé la instalación de OpenID y está funcionando bastante bien. Me imagino que detallaré algunas de las trampas con las que me encontré.
- Hay más de tres estados/pasos para el proceso de inicio de sesión de OpenID. Esto es confuso, porque la documentación y el código de muestra lo llevarían a creer que hay tres. Hay, en algunos casos, hasta siete. Mire los registros de su servidor y vea cuántas veces un SERVIDOR y un USUARIO (los que solicitan la autenticación) presionan al PROVEEDOR (lo que presumiblemente está configurando). Es difícil depurar algo cuando solo está viendo la mitad de las interacciones
- Muchos proveedores utilizan la especificación OpenID 2.0 no finalizada. (Es un poco mejor). La especificación 2.0 tiene un rendimiento diferente de la especificación 1.0; el SERVIDOR (ellos) establece confianza con el PROVEEDOR (usted). Net :: OpenID :: Server maneja esto correctamente, pero no le dice qué especificaciones está usando. La especificación 2.0 agrega un paso al proceso de toma de contacto.
- Configure su propio SERVIDOR OpenID para realizar pruebas fácilmente. Utilicé un servidor Rails simple con una gema llamada ruby-openid. Le tomó unos 10 minutos configurarlo para imitar el comportamiento de un servidor real en el medio silvestre.
- No hace falta decirlo, pero asegúrese de que su proceso de inicio de sesión sea sin estado. Teníamos una variable global que manejaba cómo se verificaba al usuario. Debido a que el uso de esa variable hizo ciertas suposiciones que eran incompatibles con el proceso de inicio de sesión de OpenID, los usuarios podrían haber ingresado a cuentas que no sean las suyas. Esto es obviamente malo. Algunos cierres y tenemos un código más seguro y sin estado.
En general, OpenID es bastante genial una vez que lo hace funcionar.
+1 para el nitty-gritty – daxim