Estávamos com o plugin SAML funcionando com nosso AzureAD, mas ontem, após atualizarmos para o último commit, começamos a ver os seguintes erros quando os usuários tentam autenticar via SAML:
Sign in
Sorry, but we’re having trouble signing you in.
AADSTS7500525: There was an XML error in the SAML message at line 1, position 1. Verify that the XML content of the SAML messages conforms to the SAML protocol specifications.
Os commits de dezembro têm muitas alterações no SAML (configuração via configurações do site, por exemplo), mas não consegui descobrir se houve alguma alteração relacionada às solicitações SAML que possa ter causado isso.
Configuração SAML (funcionando bem até a atualização):
## Saml plugin setting
DISCOURSE_SAML_TARGET_URL: https://login.microsoftonline.com/<<nosso id de aplicativo>>/saml2
DISCOURSE_SAML_CERT_FINGERPRINT: "<<nosso fingerprint>>"
DISCOURSE_SAML_REQUEST_METHOD: POST
#DISCOURSE_SAML_FULL_SCREEN_LOGIN: true
DISCOURSE_SAML_CERT: "-----BEGIN CERTIFICATE-----
<<Nosso payload de certificado>>
-----END CERTIFICATE-----"
DISCOURSE_SAML_SYNC_GROUPS: true
DISCOURSE_SAML_GROUPS_ATTRIBUTE: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
DISCOURSE_SAML_GROUPS_FULLSYNC: true
Como posso habilitar a depuração de autenticação para obter mais informações sobre isso?
Lamento saber que você está tendo problemas! Você está certo de que tenho feito muita refatoração no plugin SAML nas últimas semanas, então pode estar relacionado.
Quando isso acontece? Quando os usuários iniciam o login? Ou quando eles retornam ao Discourse?
Alguma chance de você compartilhar o URL do seu site aqui, ou por mensagem privada?
Também tentei encontrar algo nos logs do Discourse, mas como o erro ocorre no lado do Azure, não encontrei nenhuma mensagem de erro lá.
No production.log, o processo de login para aqui (provavelmente esperando um retorno do Azure):
Processing by StaticController#show as HTML
Parameters: {“id”=>“login”}
Rendered static/login.html.erb (Duration: 17.5ms | Allocations: 1440)
Completed 200 OK in 19ms (Views: 18.3ms | ActiveRecord: 0.0ms | Allocations: 2104)
Started GET “/session/csrf” for <> at 2021-12-14 18:28:16 -0300
Processing by SessionController#csrf as JSON
Completed 200 OK in 1ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 337)
Started POST “/auth/saml” for <> at 2021-12-14 18:28:16 -0300
(saml) Setup endpoint detected, running now.
(saml) Request phase initiated.
A equipe responsável pelo Azure está tentando obter o XML que estão recebendo, então talvez possamos ver algo “diferente” nele. Avisarei quando eles me enviarem.
Receio que seja difícil entender o que está acontecendo aqui sem acesso ao site.
O próximo passo seria tentar obter o XML que está sendo recebido pelo Azure e descobrir o que há de errado com ele. Você deve ser capaz de fazer isso verificando a carga útil nas ferramentas do desenvolvedor do navegador e, em seguida, decodificando-a usando uma ferramenta como esta.