Teníamos el plugin SAML funcionando con nuestro AzureAD, pero ayer, después de actualizar al último commit, comenzamos a ver los siguientes errores cuando los usuarios intentan autenticarse a través de 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.
Los commits de diciembre tienen muchos cambios en SAML (configuración a través de la configuración del sitio, por ejemplo), pero no pude averiguar si hubo algún cambio relacionado con las solicitudes SAML que pudiera haber causado esto.
Configuración SAML (funcionando bien hasta la actualización):
## Saml plugin setting
DISCOURSE_SAML_TARGET_URL: https://login.microsoftonline.com/<<nuestro id de aplicación>>/saml2
DISCOURSE_SAML_CERT_FINGERPRINT: "<<nuestra huella digital>>"
DISCOURSE_SAML_REQUEST_METHOD: POST
#DISCOURSE_SAML_FULL_SCREEN_LOGIN: true
DISCOURSE_SAML_CERT: "-----BEGIN CERTIFICATE-----
<<Nuestra carga útil del 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
¿Cómo puedo habilitar la depuración de autenticación para obtener más información sobre esto?
¡Lamento escuchar que tienes problemas! Tienes razón en que he estado haciendo muchas refactorizaciones en el plugin SAML en las últimas semanas, así que podría estar relacionado.
¿Cuándo ocurre esto? ¿Cuando los usuarios inician sesión? ¿O cuando regresan a Discourse?
¿Sería posible que compartieras la URL de tu sitio aquí, o por mensaje privado?
También intenté encontrar algo en los registros de Discourse, pero como el error ocurre del lado de Azure, no encontré ningún mensaje de error allí.
En production.log, el proceso de inicio de sesión se detiene aquí (probablemente esperando una respuesta de 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.
El equipo responsable de Azure está intentando obtener el XML que están recibiendo, así que tal vez podamos ver algo “diferente” en él. Te avisaré cuando me lo envíen.
El error ocurre después de que el usuario hace clic en el botón de inicio de sesión.
Luego se redirige a la página de inicio de sesión de Azure con el siguiente error:
Me temo que es difícil averiguar qué está pasando aquí sin acceso al sitio.
El siguiente paso sería intentar obtener el XML que está recibiendo Azure y averiguar qué está mal con él. Deberías poder hacerlo revisando la carga útil en las herramientas de desarrollador del navegador y luego decodificándola usando una herramienta como esta.