Saltar al contenido principal

Sentry

Sentry es una plataforma de seguimiento de errores y monitoreo de rendimiento. Sus organizaciones pueden iniciar sesión a sus miembros mediante un proveedor de identidad (IdP) SAML 2.0. Con Casdoor como IdP, los miembros inician sesión en Sentry con su cuenta de Casdoor.

En sentry.io, SAML2 requiere el plan Business o Enterprise. Sentry autoalojado lo incluye desde la versión 20.6.0, y las funciones organizations:sso-basic y organizations:sso-saml2 están activadas por defecto.

Preparar Sentry​

Sentry construye las URLs que proporciona al IdP desde system.url-prefix. En Sentry autoalojado, configúrelo en sentry/config.yml con la URL pública, incluyendo el esquema que abren los usuarios:

system.url-prefix: 'https://sentry.example.com'

Reinicie Sentry después de cambiarlo. Sin esto, el inicio de sesión falla, a menudo con HTTP 500 después de que el usuario regresa de Casdoor.

Crear la aplicación en Casdoor​

Los ejemplos usan el slug de organización my-org en Sentry. Encuentre el suyo en la URL de la configuración de la organización.

  1. En la consola de administración de Casdoor, abra la organización de sus usuarios y agregue una aplicación, o abra una existente.

  2. Agregue el ID de entidad de Sentry a Redirect URLs. Sentry usa su URL de metadatos como ID de entidad:

    https://sentry.example.com/saml/metadata/my-org/
  3. En la pestaña SAML, establezca SAML reply URL en la URL del Servicio de Consumo de Aserciones (ACS) de Sentry:

    https://sentry.example.com/saml/acs/my-org/
  4. Mantenga desactivados Enable SAML assertion signature y Enable SAML C14N10. Casdoor firma entonces la respuesta SAML, que Sentry verifica. Con la firma de aserción activada, Sentry rechaza la respuesta con Signature validation failed. SAML Response rejected.

  5. Guarde y haga clic en Copy SAML metadata URL. La URL tiene esta forma:

    https://door.example.com/api/saml/metadata?application=admin/<application-name>

Configurar SAML2 en Sentry​

  1. En Sentry, vaya a Settings > Auth de la organización, y haga clic en Configure junto a SAML2.

  2. En la pestaña Metadata URL, introduzca la URL de metadatos de Casdoor en Metadata URL y haga clic en Get metadata.

    Si Sentry no puede llegar a Casdoor, abra la URL de metadatos en un navegador y pegue el XML en la pestaña XML en Metadata XML en su lugar.

  3. Asigne los atributos que envía Casdoor:

    FieldValue
    IdP User IDName
    User EmailEmail
    First NameDisplayName
    Last Name(empty)

    Casdoor envía el nombre de usuario en el atributo Name y el nombre para mostrar en DisplayName. Vea Perfil de usuario en la respuesta.

  4. Guarde. La página Auth mostrará entonces SAML2 como el proveedor de la organización. Para solicitar a los miembros existentes que vinculen sus cuentas a Casdoor, envíeles un recordatorio desde esta página.

Verificar el resultado​

  1. Abra https://sentry.example.com/auth/login/my-org/ en una ventana privada del navegador e inicie sesión con inicio de sesión único.
  2. Inicie sesión en Casdoor. Sentry abre la organización con el usuario de Casdoor conectado. Un usuario que aún no es miembro se convierte en uno en este primer inicio de sesión, con el rol predeterminado de la organización.

Solución de problemas​

SymptomCause and fix
SAML SSO failed, Signature validation failed. SAML Response rejectedTurn off Enable SAML assertion signature and Enable SAML C14N10 on the application. If it persists, fetch the metadata again: Sentry must have the certificate of the application's current Cert.
Failed to map SAML attributesAn attribute name in the mapping doesn't match. The message lists the attribute names that the response contains. Check that Disable SAML attributes is off.
Casdoor shows AssertionConsumerServiceURL: ... doesn't match the SAML reply URL or the allowed Redirect URI listSet SAML reply URL to the ACS URL of Sentry, with the organization slug and the trailing slash.
Sentry returns HTTP 500 after the sign-insystem.url-prefix isn't set or differs from the URL that users open. Fix it and restart Sentry.
Get metadata fails with a certificate errorSentry checks the TLS certificate of Casdoor. Serve Casdoor with a valid certificate, or paste the metadata XML instead.

Vea también​