You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "marcosmamorim (via GitHub)" <gi...@apache.org> on 2025/06/01 11:57:52 UTC

[D] How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset? [superset]

GitHub user marcosmamorim created a discussion: How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset?

We are running Superset in an enterprise environment with SSO-only authentication (OAuth). 

**Problem:**
Alerts & Reports (including thumbnails/screenshots) are not working natively. The headless browser (we are using Playwright) is redirected to the SSO login page, so the reports/emails contain blank images or the login screen instead of the actual dashboard/chart.

We have tried using Playwright scripts to automate the SSO login and capture screenshots, but is not working.

Has anyone successfully enabled Alerts/Reports/Thumbnails in a SSO-only environment using Playwright or any other method?

Are there any best practices, plugins, or supported workarounds for this scenario?

**Example:**
<img width="1057" alt="Screenshot 2025-06-01 at 7 52 06 AM" src="https://github.com/user-attachments/assets/56fe6c62-f74f-44bb-b0cc-05ce1d6bf188" />


**Environment:**
Superset version: 4.1.1
SSO provider: Auth0


GitHub link: https://github.com/apache/superset/discussions/33654

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset? [superset]

Posted by "Daniel-Wache (via GitHub)" <gi...@apache.org>.
GitHub user Daniel-Wache added a comment to the discussion: How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset?

The solution mentioned in https://github.com/apache/superset/issues/14330#issuecomment-885656343 seems to work. 
The problem is that the methods authenticate_webdriver and authenticate_browser_context in MachineAuthProvider redirect to the login-url. 


GitHub link: https://github.com/apache/superset/discussions/33654#discussioncomment-16545888

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset? [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] added a comment to the discussion: How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset?

<!-- Greeting -->
Hi @marcosmamorim! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the superset team.

<!-- Answer -->
Enabling Alerts, Reports, and Thumbnails in Superset with SSO-only (OAuth) authentication is a common challenge, as headless browsers like Playwright or Selenium are redirected to the SSO login page, resulting in blank or login screenshots. Here’s what is known and what you can try:

**1. Why this happens:**  
Superset’s async tasks (alerts, reports, thumbnails) impersonate a user context using an executor pattern. When generating screenshots, the worker tries to access dashboards as a specific user, but with SSO-only setups, the headless browser cannot easily authenticate, so it gets redirected to the login page instead of rendering the dashboard/chart [[source](https://github.com/apache/superset/blob/c09f8f6f7665e503a376926700fa815add6892ca/superset/tasks/utils.py)].

**2. No official plugin or built-in workaround exists** for SSO-only environments as of Superset 4.1.1. This is a known limitation and has been discussed in various threads, but there is no out-of-the-box solution for Playwright or Selenium to bypass SSO for background tasks.

**3. Best-practice workarounds:**

- **Guest Token (Embedded) Approach:**  
  If your use case allows, you can use Superset’s Guest Token feature to grant access to dashboards without requiring a login. This is typically used for embedding dashboards but can be adapted for headless browser access. Enable the `EMBEDDED_SUPERSET` feature flag, set up `GUEST_TOKEN_JWT_SECRET`, and generate guest tokens for the resources you want to access. This allows the headless browser to access dashboards as a guest user, bypassing SSO [[discussion](https://github.com/apache/superset/discussions/31949)].

- **Public Role (if security allows):**  
  For non-sensitive dashboards, you can enable the `Public` role and assign it to the dashboards/charts you want to screenshot. This allows unauthenticated access, so the headless browser won’t be redirected to SSO. Set `PUBLIC_ROLE_LIKE = "Gamma"` in your config if you want the public role to have Gamma-like permissions.

- **Machine Auth Cookie:**  
  Superset uses a “machine auth” provider to generate cookies for background tasks. If you can configure a service account in your SSO provider and ensure the worker can authenticate as this user (for example, by pre-generating a session cookie or using a fixed user with a long-lived session), you can set up the executor to always use this account. However, this often requires custom SSO integration and is not natively supported with OAuth-only flows.

**4. Playwright/Selenium configuration tips:**  
If you are not blocked by SSO, but see timeouts or blank screenshots, increase `SCREENSHOT_LOCATE_WAIT` and `SCREENSHOT_LOAD_WAIT` in `superset_config.py` (e.g., 30 and 60 seconds) [[issue](https://github.com/apache/superset/issues/33132)]. For Selenium, use recommended headless Chrome options (`--headless`, `--no-sandbox`, etc.) [[issue](https://github.com/apache/superset/issues/33602)].

**5. Feature flags:**  
Try enabling the `PLAYWRIGHT_REPORTS_AND_THUMBNAILS` feature flag and related Playwright config options for alternate screenshotting logic [[issue](https://github.com/apache/superset/issues/33602)].

**6. Executor pattern and user impersonation:**  
Superset’s async tasks use the executor pattern to impersonate a user (owner, creator, fixed user, etc.) for permission checks and data access. If you can ensure that the impersonated user has a valid session (via guest token, public role, or machine auth), screenshots and reports will work as expected [[source](https://github.com/apache/superset/blob/c09f8f6f7665e503a376926700fa815add6892ca/superset/tasks/thumbnails.py)].

**Summary:**  
There is no official, fully supported way to bypass SSO for alerts/reports/thumbnails in Superset 4.1.1. The most robust workaround is to use Guest Tokens for embedded dashboards or to make dashboards public if security allows. Otherwise, you would need to implement a custom solution to provide a valid session for the headless browser, which may require changes to your SSO provider or Superset’s authentication logic.

If you need more details on configuring Guest Tokens or public dashboards, let me know!


<!-- Dosu Comment Footer -->
*To reply, just mention my name [@dosu](https://go.dosu.dev/dosubot).*

---
<sup>How did I do? [Good](https://app.dosu.dev/response-feedback/4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293?feedback_type=other)</sup>&nbsp;&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Sh
 are on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/33654)

GitHub link: https://github.com/apache/superset/discussions/33654#discussioncomment-13334010

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset? [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] edited a comment on the discussion: How to enable Alerts/Reports/Thumbnails with SSO-only authentication in Superset?

<!-- Greeting -->
Hi @marcosmamorim! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the superset team.

<!-- Answer -->
Enabling Alerts, Reports, and Thumbnails in Superset with SSO-only (OAuth) authentication is a common challenge, as headless browsers like Playwright or Selenium are redirected to the SSO login page, resulting in blank or login screenshots. Here’s what is known and what you can try:

**1. Why this happens:**  
Superset’s async tasks (alerts, reports, thumbnails) impersonate a user context using an executor pattern. When generating screenshots, the worker tries to access dashboards as a specific user, but with SSO-only setups, the headless browser cannot easily authenticate, so it gets redirected to the login page instead of rendering the dashboard/chart [[source](https://github.com/apache/superset/blob/c09f8f6f7665e503a376926700fa815add6892ca/superset/tasks/utils.py)].

**2. No official plugin or built-in workaround exists** for SSO-only environments as of Superset 4.1.1. This is a known limitation and has been discussed in various threads, but there is no out-of-the-box solution for Playwright or Selenium to bypass SSO for background tasks.

**3. Best-practice workarounds:**

- **Guest Token (Embedded) Approach:**  
  If your use case allows, you can use Superset’s Guest Token feature to grant access to dashboards without requiring a login. This is typically used for embedding dashboards but can be adapted for headless browser access. Enable the `EMBEDDED_SUPERSET` feature flag, set up `GUEST_TOKEN_JWT_SECRET`, and generate guest tokens for the resources you want to access. This allows the headless browser to access dashboards as a guest user, bypassing SSO [[discussion](https://github.com/apache/superset/discussions/31949)].

- **Public Role (if security allows):**  
  For non-sensitive dashboards, you can enable the `Public` role and assign it to the dashboards/charts you want to screenshot. This allows unauthenticated access, so the headless browser won’t be redirected to SSO. Set `PUBLIC_ROLE_LIKE = "Gamma"` in your config if you want the public role to have Gamma-like permissions.

- **Machine Auth Cookie:**  
  Superset uses a “machine auth” provider to generate cookies for background tasks. If you can configure a service account in your SSO provider and ensure the worker can authenticate as this user (for example, by pre-generating a session cookie or using a fixed user with a long-lived session), you can set up the executor to always use this account. However, this often requires custom SSO integration and is not natively supported with OAuth-only flows.

**4. Playwright/Selenium configuration tips:**  
If you are not blocked by SSO, but see timeouts or blank screenshots, increase `SCREENSHOT_LOCATE_WAIT` and `SCREENSHOT_LOAD_WAIT` in `superset_config.py` (e.g., 30 and 60 seconds) [[issue](https://github.com/apache/superset/issues/33132)]. For Selenium, use recommended headless Chrome options (`--headless`, `--no-sandbox`, etc.) [[issue](https://github.com/apache/superset/issues/33602)].

**5. Feature flags:**  
Try enabling the `PLAYWRIGHT_REPORTS_AND_THUMBNAILS` feature flag and related Playwright config options for alternate screenshotting logic [[issue](https://github.com/apache/superset/issues/33602)].

**6. Executor pattern and user impersonation:**  
Superset’s async tasks use the executor pattern to impersonate a user (owner, creator, fixed user, etc.) for permission checks and data access. If you can ensure that the impersonated user has a valid session (via guest token, public role, or machine auth), screenshots and reports will work as expected [[source](https://github.com/apache/superset/blob/c09f8f6f7665e503a376926700fa815add6892ca/superset/tasks/thumbnails.py)].

**Summary:**  
There is no official, fully supported way to bypass SSO for alerts/reports/thumbnails in Superset 4.1.1. The most robust workaround is to use Guest Tokens for embedded dashboards or to make dashboards public if security allows. Otherwise, you would need to implement a custom solution to provide a valid session for the headless browser, which may require changes to your SSO provider or Superset’s authentication logic.

If you need more details on configuring Guest Tokens or public dashboards, let me know!


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=reply-with-mention&utm_term=apache%2Fsuperset).*

---

Docs are dead. Just use [Dosu](https://dosu.dev?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-tagline&utm_term=apache%2Fsuperset).

[![Leave Feedback](https://img.shields.io/badge/Leave%20Feedback-555555?style=flat)](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-feedback&utm_term=apache%2Fsuperset&message_id=4c56cee5-8e3a-4f66-8c1f-d3ecb15bb293) [![Ask Dosu about superset](https://img.shields.io/badge/Ask%20Dosu%20about%20superset-2f7b3f?style=flat&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iODYiIGhlaWdodD0iODkiIHZpZXdCb3g9IjAgMCA4NiA4OSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4yOTIzNiAxMi43OTI4TDE3Ljc1OTMgNi42ODE4OFY3Mi41NjY3TDUuMjkyMzYgODQuMDYxOFYxMi43OTI4WiIgZmlsbD0iI0I0QkI5MSIvPjxwYXRoIGQ9Ik0xOC4yNTc1IDczLjExOTZMNTkuMTMyOSA3Mi43NDhMNTEuNzAxMSA4Mi40MDk1TDI5LjAzMzggODYuMjkxTDYuMjM5NjIgODUuMTU1NEwxOC4yNTc1IDczLjExOTZaIiBmaWxsPSIjNzc4NTYxIi8%2BPHBhdGggZD0iTTE3LjQ5MTYgMy43MzYzM0wzLjU4NTU3IDEyLjcwOTlWODMuNTc5MkMzLjU4NTU3IDg0Ljc1NDIgNC45ODU2MyA4NS4zNjUyIDUuODQ3MDUg
 ODQuNTY2TDE5LjYyOTYgNzEuNzgwMSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI2LjQyODQ0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48bWFzayBpZD0iZG9zdS1kLWN1dG91dCIgZmlsbD0id2hpdGUiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDAuNzA0IDAuNTE4MDY2SDE3LjA0MzlWNzYuMjIyMUg0MC43MDRINDIuNTgwNUg0Ny44MDEzQzY4LjcwNjQgNzYuMjIyMSA4NS42NTMzIDU5LjI3NTIgODUuNjUzMyAzOC4zNzAxQzg1LjY1MzMgMTcuNDY1IDY4LjcwNjMgMC41MTgwNjYgNDcuODAxMyAwLjUxODA2Nkg0Mi41ODA1SDQwLjcwNFoiLz48L21hc2s%2BPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MC43MDQgMC41MTgwNjZIMTcuMDQzOVY3Ni4yMjIxSDQwLjcwNEg0Mi41ODA1SDQ3LjgwMTNDNjguNzA2NCA3Ni4yMjIxIDg1LjY1MzMgNTkuMjc1MiA4NS42NTMzIDM4LjM3MDFDODUuNjUzMyAxNy40NjUgNjguNzA2MyAwLjUxODA2NiA0Ny44MDEzIDAuNTE4MDY2SDQyLjU4MDVINDAuNzA0WiIgZmlsbD0iI0YzRjZGMSIvPjxwYXRoIGQ9Ik0xNy4wNDM5IDAuNTE4MDY2Vi02LjU3OTE5SDkuOTQ2NjlWMC41MTgwNjZIMTcuMDQzOVpNMTcuMDQzOSA3Ni4yMjIxSDkuOTQ2NjlWODMuMzE5NEgxNy4wNDM5Vjc2LjIyMjFaTTE3LjA0MzkgNy42MTUzMkg0MC43MDRWLTYuNTc5MTlIMTcuMDQzOVY3LjYxNTMyWk0
 yNC4xNDEyIDc2LjIyMjFWMC41MTgwNjZIOS45NDY2OVY3Ni4yMjIxSDI0LjE0MTJaTTQwLjcwNCA2OS4xMjQ5SDE3LjA0MzlWODMuMzE5NEg0MC43MDRWNjkuMTI0OVpNNDIuNTgwNSA2OS4xMjQ5SDQwLjcwNFY4My4zMTk0SDQyLjU4MDVWNjkuMTI0OVpNNDcuODAxMyA2OS4xMjQ5SDQyLjU4MDVWODMuMzE5NEg0Ny44MDEzVjY5LjEyNDlaTTc4LjU1NiAzOC4zNzAxQzc4LjU1NiA1NS4zNTU1IDY0Ljc4NjcgNjkuMTI0OSA0Ny44MDEzIDY5LjEyNDlWODMuMzE5NEM3Mi42MjYxIDgzLjMxOTQgOTIuNzUwNSA2My4xOTQ5IDkyLjc1MDUgMzguMzcwMUg3OC41NTZaTTQ3LjgwMTMgNy42MTUzMkM2NC43ODY2IDcuNjE1MzIgNzguNTU2IDIxLjM4NDcgNzguNTU2IDM4LjM3MDFIOTIuNzUwNUM5Mi43NTA1IDEzLjU0NTMgNzIuNjI2IC02LjU3OTE5IDQ3LjgwMTMgLTYuNTc5MTlWNy42MTUzMlpNNDIuNTgwNSA3LjYxNTMySDQ3LjgwMTNWLTYuNTc5MTlINDIuNTgwNVY3LjYxNTMyWk00MC43MDQgNy42MTUzMkg0Mi41ODA1Vi02LjU3OTE5SDQwLjcwNFY3LjYxNTMyWiIgZmlsbD0iYmxhY2siIG1hc2s9InVybCgjZG9zdS1kLWN1dG91dCkiLz48cGF0aCBkPSJNNjguOTIxNSAzNi4wMTM1QzY4LjkyMTUgMzYuMDEzNSA2NS43MzY5IDQ5LjQ3MzggNTEuNDIzMSA0OS40NzM4QzM3LjEwOTMgNDkuNDczOCAzMi41Nzg3IDM3LjM1OTYgMzIuNTc4NyAzNi4wMTM1IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjcuNjkxNjEi
 IHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0wLjM0ODYzMyA4NS40OTQ2QzAuMzQ4NjMzIDg1LjQ5NDYgMjkuNDg1NiA4NS44MzA5IDM0LjgwOSA4NS42OThDNDQuODMzNyA4NS40NDc3IDUxLjI4NzIgODQuNDAyIDU3LjUyNjkgNzguOTcyNEM2Mi44MTI5IDc0LjM3MjcgNzUuMTM0MiA1OS42ODM2IDc1LjEzNDIgNTkuNjgzNiIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI2LjE2NDgyIi8%2BPC9zdmc%2B)](https://github.dosu.com/apache/superset?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-ask-repo&utm_term=apache%2Fsuperset) [![Share Dosu with your team](https://img.shields.io/badge/Share%20Dosu%20with%20your%20team-1f6feb?style=flat)](https://app.dosu.dev/signup?referrer=openSource&source=github-footer&utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-share-team&utm_term=apache%2Fsuperset)

GitHub link: https://github.com/apache/superset/discussions/33654#discussioncomment-13334010

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org