Hemos estado teniendo un montón de problemas con nuestra implementación de SSO recientemente y, tras mucho trabajo de depuración, encontramos el problema.
Algunos de nuestros problemas incluían:
- Nuevos usuarios incapaces de iniciar sesión en los foros
- Usuarios existentes que veían un
7añadido al final de su nombre de usuario al iniciar sesión por primera vez sso_syncrechazando cambios de nombre de usuario
Resulta que todo esto fue causado por una doble codificación URL de nuestra carga útil de SSO. La estábamos codificando, la poníamos en la URL junto con la firma y luego la codificábamos de nuevo. Dado que las cadenas codificadas en base64 pueden incluir =, esto se codificó DOS veces en %253D en lugar de en %3D, como debería haber sido. No tengo ni idea de por qué esto solo rompió Discourse a veces, pero espero que si alguien más tiene este problema, esto pueda ser de ayuda.