You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "rick-chou (via GitHub)" <gi...@apache.org> on 2025/03/28 07:09:50 UTC

[D] How to obtain guest_token for embedded-sdk after disabling MFA and integrating Okta? [superset]

GitHub user rick-chou created a discussion: How to obtain guest_token for embedded-sdk after disabling MFA and integrating Okta?

BTW, I'm able to get the superset sessionId, but it appears this can't be used directly by the SDK.

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

----
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 obtain guest_token for embedded-sdk after disabling MFA and integrating Okta? [superset]

Posted by "rick-chou (via GitHub)" <gi...@apache.org>.
GitHub user rick-chou edited a discussion: How to obtain guest_token for embedded-sdk after disabling MFA and integrating Okta?



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

----
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 obtain guest_token for embedded-sdk after disabling MFA and integrating Okta? [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] added a comment to the discussion: How to obtain guest_token for embedded-sdk after disabling MFA and integrating Okta?

<!-- Greeting -->
Hey @rick-chou! I'm here to help you with any bugs or questions you have while waiting for a human maintainer. Let me know how I can assist you!

<!-- Answer -->
To obtain a `guest_token` for the embedded SDK after disabling MFA and integrating Okta, you need to have your backend request the guest token from Superset's `POST /security/guest_token` endpoint. This token is then passed to the frontend for use with the SDK. Here is a general approach:

1. Ensure your backend is set up to authenticate with Superset and can make HTTP requests.
2. Implement a function in your backend to request the guest token from Superset. Make sure to include the necessary request body as defined by the `GuestTokenCreateSchema`:

```python
import requests

def fetch_guest_token():
    url = "https://superset.example.com/api/v1/security/guest_token"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer <your_access_token>"
    }
    payload = {
        "user": {
            "username": "guest_user"
        },
        "resources": [
            {
                "type": "dashboard",
                "id": "your_dashboard_id"
            }
        ],
        "rls": []
    }
    response = requests.post(url, headers=headers, json=payload)
    if response.status_code == 200:
        return response.json().get("token")
    else:
        raise Exception("Failed to obtain guest token: " + response.text)
```

3. Use this function in your frontend to fetch the guest token:

```js
import { embedDashboard } from "@superset-ui/embedded-sdk";

async function fetchGuestTokenFromBackend() {
  const response = await fetch('/your-backend-endpoint-to-fetch-guest-token');
  const data = await response.json();
  return data.token;
}

embedDashboard({
  id: "abc123",
  supersetDomain: "https://superset.example.com",
  mountPoint: document.getElementById("my-superset-container"),
  fetchGuestToken: fetchGuestTokenFromBackend,
  dashboardUiConfig: {
    hideTitle: true,
    filters: {
      expanded: true,
    },
    urlParams: {
      foo: 'value1',
      bar: 'value2',
    }
  },
  iframeSandboxExtras: ['allow-top-navigation', 'allow-popups-to-escape-sandbox'],
  referrerPolicy: "same-origin"
});
```

This setup allows your frontend to obtain a guest token from your backend, which in turn requests it from Superset. Ensure that the request payload matches the schema expected by Superset's API, including user and resource details <sup>[[1]](https://github.com/apache/superset/blob/master/superset-embedded-sdk/README.md)</sup>.


<!-- Dosu Comment Footer -->
*To continue talking to [Dosu](https://dosu.dev), mention @dosu.*

---
<sup>Help Dosu learn! Give it feedback: [Great Response](https://app.dosu.dev/response-feedback/a5d89576-e5fa-4701-aa99-a09d45654405?feedback_type=great_response) | [Irrelevant Answer](https://app.dosu.dev/response-feedback/a5d89576-e5fa-4701-aa99-a09d45654405?feedback_type=irrelevant_answer) | [Incorrect Sources](https://app.dosu.dev/response-feedback/a5d89576-e5fa-4701-aa99-a09d45654405?feedback_type=incorrect_sources) | [Too Verbose](https://app.dosu.dev/response-feedback/a5d89576-e5fa-4701-aa99-a09d45654405?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/a5d89576-e5fa-4701-aa99-a09d45654405?feedback_type=hallucination) | [Bug Report](https://app.dosu.dev/response-feedback/a5d89576-e5fa-4701-aa99-a09d45654405?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/a5d89576-e5fa-4701-aa99-a09d45654405?feedback_type=other)</sup>


GitHub link: https://github.com/apache/superset/discussions/32893#discussioncomment-12649553

----
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