Temos enfrentado um monte de problemas com nossa implementação de SSO recentemente e, após bastante trabalho de depuração, encontramos a causa.
Alguns dos nossos problemas incluíam:
- Novos usuários sendo incapazes de fazer login nos fóruns
- Usuários existentes tendo
7adicionado ao final de seu nome de usuário ao fazer login pela primeira vez sso_syncrejeitando alterações de nome de usuário
Acontece que tudo isso foi causado pela codificação dupla da URL do nosso payload SSO. Nós estávamos codificando-o, colocando-o na URL com a assinatura e codificando-o novamente. Como strings codificadas em base64 podem incluir =, isso acabou sendo codificado DUAS vezes em %253D em vez de %3D, como deveria ser. Não tenho ideia do motivo pelo qual isso só quebrou o Discourse às vezes, mas espero que, se alguém mais tiver esse problema, isso possa ser útil.