Passer au contenu principal

Sentry

Sentry est une plateforme de suivi d'erreurs et de surveillance des performances. Ses organisations peuvent connecter leurs membres via un fournisseur d'identité SAML 2.0 (IdP). Avec Casdoor comme IdP, les membres se connectent à Sentry avec leur compte Casdoor.

Sur sentry.io, SAML2 nécessite le plan Business ou Enterprise. Sentry auto-hébergé l'intègre nativement depuis la version 20.6.0, et les fonctionnalités organizations:sso-basic et organizations:sso-saml2 sont activées par défaut.

Préparer Sentry​

Sentry construit les URLs qu'il fournit à l'IdP à partir de system.url-prefix. Sur Sentry auto-hébergé, définissez-le dans sentry/config.yml à l'URL publique, avec le schéma que les utilisateurs ouvrent :

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

Redémarrez Sentry après modification. Sans cela, la connexion échoue, souvent avec une erreur HTTP 500 après le retour de l'utilisateur depuis Casdoor.

Créer l'application dans Casdoor​

Les exemples utilisent le slug d'organisation my-org dans Sentry. Trouvez le vôtre dans l'URL des paramètres de l'organisation.

  1. Dans la console d'administration Casdoor, ouvrez l'organisation de vos utilisateurs et ajoutez une application, ou ouvrez-en une existante.

  2. Ajoutez l'identifiant d'entité de Sentry dans Redirect URLs. Sentry utilise son URL de métadonnées comme identifiant d'entité :

    https://sentry.example.com/saml/metadata/my-org/
  3. Sur l'onglet SAML, définissez SAML reply URL sur l'URL du service de consommation d'assertions (ACS) de Sentry :

    https://sentry.example.com/saml/acs/my-org/
  4. Laissez Enable SAML assertion signature et Enable SAML C14N10 désactivés. Casdoor signe alors la réponse SAML, que Sentry vérifie. Si la signature d'assertion est activée, Sentry rejette la réponse avec Signature validation failed. SAML Response rejected.

  5. Enregistrez, et cliquez sur Copy SAML metadata URL. L'URL a cette forme :

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

Configurer SAML2 dans Sentry​

  1. Dans Sentry, allez dans Settings > Auth de l'organisation, et cliquez sur Configure à côté de SAML2.

  2. Sur l'onglet Metadata URL, entrez l'URL de métadonnées de Casdoor dans Metadata URL et cliquez sur Get metadata.

    Si Sentry ne peut pas atteindre Casdoor, ouvrez l'URL de métadonnées dans un navigateur, et collez le XML dans l'onglet XML dans Metadata XML à la place.

  3. Mappez les attributs envoyés par Casdoor :

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

    Casdoor envoie le nom d'utilisateur dans l'attribut Name et le nom affiché dans DisplayName. Voir Profil utilisateur dans la réponse.

  4. Enregistrez. La page Auth affiche alors SAML2 comme fournisseur de l'organisation. Pour demander aux membres existants de lier leurs comptes à Casdoor, envoyez-leur un rappel depuis cette page.

Vérifier le résultat​

  1. Ouvrez https://sentry.example.com/auth/login/my-org/ dans une fenêtre de navigation privée et connectez-vous via l'authentification unique (SSO).
  2. Connectez-vous à Casdoor. Sentry ouvre l'organisation avec l'utilisateur Casdoor connecté. Un utilisateur qui n'est pas encore membre devient membre lors de cette première connexion, avec le rôle par défaut de l'organisation.

Dépannage​

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.

Voir aussi​