From 1530bb20df913e29f54e233a5c59ec7723b37938 Mon Sep 17 00:00:00 2001 From: Dominic R Date: Tue, 16 Jun 2026 15:27:52 -0400 Subject: [PATCH] website/integrations: Sentry: cleanup Closes: #18351 Agent-thread: https://sdko.org/internal/thr/ak/019ed1c3-154e-7bb2-add7-8719be8f8529 A7k-product: product A7k-product-repo: 2 Co-authored-by: Agent --- .../integrations/monitoring/sentry/auth.png | Bin 43591 -> 0 bytes .../integrations/monitoring/sentry/index.md | 131 +++++++++++++++--- 2 files changed, 112 insertions(+), 19 deletions(-) delete mode 100644 website/integrations/monitoring/sentry/auth.png diff --git a/website/integrations/monitoring/sentry/auth.png b/website/integrations/monitoring/sentry/auth.png deleted file mode 100644 index fc1b55f082bb2c6688ac3b0bddf81b08be8f5fbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43591 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

ei_WqrGN$+jF0$ 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 X&nW06e0mCR0snL~^)>R Sentry provides self-hosted and cloud-based error monitoring that helps all software teams discover, triage, and prioritize errors in real-time. -> One million developers at over fifty thousand companies already ship better software faster with Sentry. Won’t you join them? +> Sentry is an application monitoring platform for tracking errors, performance issues, and release health across software projects. > > -- https://sentry.io @@ -15,37 +16,129 @@ support_level: authentik The following placeholders are used in this guide: -- `sentry.company` is the FQDN of the Sentry installation. +- `sentry.company` is the FQDN of the Sentry installation. For Sentry SaaS, use your organization's Sentry hostname. - `authentik.company` is the FQDN of the authentik installation. :::info This documentation lists only the settings that you need to change from their default values. Be aware that any changes other than those explicitly mentioned in this guide could cause issues accessing your application. ::: -Create an application in authentik. Create a SAML Provider with the following values +## authentik configuration -- ACS URL: `https://sentry.company/saml/acs//` -- Audience: `https://sentry.company/saml/metadata//` +To support the integration of Sentry with authentik, you need to create a SAML application/provider pair in authentik. -Under _Advanced protocol settings_, set the following: +In Sentry, find your organization slug under **Organization Settings** > **General Settings**. Use this value wherever `` is shown. -- Signing Certificate: Select any certificate. -- Property Mapping: Select all Managed Mappings +### Create an application and provider in authentik -## Sentry + -**This guide assumes you've installed Sentry using [getsentry/self-hosted](https://github.com/getsentry/self-hosted)** +1. Log in to authentik as an administrator and open the authentik Admin interface. +2. Navigate to **Applications** > **Applications** and click **New Application** to open the application wizard. + - **Application**: provide a descriptive name, an optional group for the type of application, the policy engine mode, and optional UI settings. Take note of the **Slug** value because it is required later. + - **Choose a Provider type**: select **SAML Provider** as the provider type. + - **Configure the Provider**: provide a name (or accept the auto-provided name), the authorization flow to use for this provider, and the following required configurations. + - Set the **ACS URL** to `https://sentry.company/saml/acs//`. + - Set the **Audience** to `https://sentry.company/saml/metadata//`. + - Set the **SLS URL** to `https://sentry.company/saml/sls//`. + - Under **Advanced protocol settings**: + - Select an available **Signing Certificate**. + - Set **NameID Property Mapping** to `authentik default SAML Mapping: User ID`. + - **Configure Bindings** _(optional)_: you can create a [binding](/docs/add-secure-apps/bindings-overview/) (policy, group, or user) to manage the listing and access to applications on a user's **Application Dashboard** page. +3. Click **Submit** to save the new application and provider. -Navigate to **Settings** > **Auth**, and click **Configure** next to **SAML2**. +## Sentry configuration -![](./auth.png) +### Configure SAML SSO -In authentik, get the Metadata URL by right-clicking `Download Metadata` and selecting Copy Link Address, and paste that URL into Sentry. +1. Log in to Sentry as an organization owner. +2. Navigate to **Settings** > **Auth**, and click **Configure** next to **SAML2**. +3. Use the **Metadata URL** method and enter `https://authentik.company/application/saml//metadata/`. +4. Map the identity provider attributes: + - **IdP User ID**: `http://schemas.goauthentik.io/2021/02/saml/uid` + - **User Email**: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` + - **First Name**: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` +5. Save the configuration. Sentry should authenticate with authentik and redirect back to a page confirming the SAML settings. -On the next screen, input these values. +### Configure automated provisioning with SCIM _(optional)_ -- IdP User ID: `http://schemas.goauthentik.io/2021/02/saml/uid` -- User Email: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` -- First Name: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` +authentik can also provision Sentry users and teams with SCIM. SCIM requires SAML2 to be configured first. For Sentry SaaS, SCIM requires a Sentry Business or Enterprise plan. -After confirming, Sentry will authenticate with authentik, and you should be redirected back to a page confirming your settings. +Sentry expects the SCIM `userName` value to be an email address, so each user who should be provisioned to Sentry must have a valid email address. + +#### Create a SCIM user property mapping + +1. Log in to authentik as an administrator and open the authentik Admin interface. +2. Navigate to **Customization** > **Property Mappings** and click **Create**. +3. Select **SCIM Provider Mapping** as the property mapping type and click **Next**. +4. Set the following values: + - **Name**: `Sentry SCIM user` + - **Expression**: + + ```python + if not request.user.email: + raise SkipObject + + given_name, family_name = request.user.name, " " + formatted = request.user.name + " " + if " " in request.user.name: + given_name, _, family_name = request.user.name.partition(" ") + formatted = request.user.name + + return { + "userName": request.user.email, + "name": { + "formatted": formatted, + "givenName": given_name, + "familyName": family_name, + }, + "active": request.user.is_active, + "emails": [{ + "value": request.user.email, + "type": "work", + "primary": True, + }], + } + ``` + +5. Click **Create**. + +#### Enable SCIM in Sentry + +1. In Sentry, navigate to **Settings** > **Auth**. +2. Under **General Settings**, enable **SCIM** and save the settings. +3. Copy the **Auth Token** and **SCIM Base URL** values from the **SCIM Information** section. + +#### Create a SCIM provider in authentik + +1. Log in to authentik as an administrator and open the authentik Admin interface. +2. Navigate to **Applications** > **Providers** and click **Create**. + - **Choose a Provider type**: select **SCIM Provider** as the provider type. + - **Configure the Provider**: provide a name, and the following required configurations. + - Set **URL** to the **SCIM Base URL** from Sentry. + - Set **Token** to the **Auth Token** from Sentry. + - To only sync specific Sentry teams, select the matching authentik groups in **Group Filter**. If this field is empty, authentik syncs all groups. + - Under **Attribute mapping**, remove `authentik default SCIM Mapping: User` from **Selected User Property Mappings** and add `Sentry SCIM user`. +3. Click **Finish** to save the provider. + +Sentry creates teams from SCIM groups using the group's `displayName` value. Team slugs are normalized by Sentry, including lowercasing and replacing spaces with dashes. + +#### Add the SCIM provider to the Sentry application + +1. Navigate to **Applications** > **Applications** and click the **Edit** icon for the Sentry application. +2. In **Backchannel Providers**, select the SCIM provider that you created. +3. Confirm that the users who should be provisioned to Sentry can access the Sentry application. Add group, user, or policy bindings to the application when you need to allow only a specific set of users. +4. Click **Update**. + +## Configuration verification + +To confirm that authentik is properly configured with Sentry, open Sentry and log in with authentik. + +To verify SCIM provisioning, open the SCIM provider in authentik. In the **Schedules** section, click the play icon for the SCIM sync schedule. After the sync completes, confirm that the expected users and teams are present in Sentry. + +## Resources + +- [Sentry Docs - Custom SAML Provider](https://docs.sentry.io/organization/authentication/sso/saml2/) +- [Sentry Docs - Okta SCIM Provisioning](https://docs.sentry.io/organization/authentication/sso/okta-sso/okta-scim/) +- [Sentry Docs - SCIM API](https://docs.sentry.io/api/scim/) +- [Sentry Developer Documentation - Self-Hosted Single Sign-On](https://develop.sentry.dev/self-hosted/configuration/sso/)