我遇到了一个问题,我修改了 superset/config.py 中的
"PUBLIC_ROLE_LIKE_GAMMA = True"
并将数据源添加到 PUBLIC,按照谷歌中建议的链接参考。
但是我在访问 iframe 时仍然收到 AUTH 登录页面。
在我的工作中,我们遇到了同样的问题,我们想将 iframe 嵌入到 Web 应用程序中,但我们一直遇到同样的问题。我们真的想绕过它,所以我们为它实现了
custom security manager
。如果你不害怕修改 superset 的代码,你可以将其作为灵感; 这是叉子。分支的 README 文件中解释了这些修改以及如何使用它们。如果您看一下,您会发现不需要修改很多文件即可实现此功能!
基本上,我们通过从 Web 应用程序接收令牌并将其传递给了解 Web 应用程序登录策略的 api,将登录责任委托给 Web 应用程序。在 fork 中有一个 api 如何做这样的事情的模拟。当接收到未在 Superset 中注册的 Web 应用程序用户的数据时,我们只需使用该信息为他们创建用户并登录即可。
之后 iframe 看起来像这样,因为我们有一个简单的情况,只需显示默认的欢迎图表:
<iframe
width="600"
height="400"
seamless
frameBorder="0"
src="http://<superset-endpoint>/login?token=a"
>
公共仪表板 这不适用于生产。用于实验或进行概念验证。
#superset_config.py
PUBLIC_ROLE_LIKE_GAMMA = True
在此之后,我们需要
re-run the init user
(如果已经运行)
docker-compose exec 超集 superset-init
根据(https://github.com/apache/superset/pull/19274):
PUBLIC_ROLE_LIKE_GAMMA
配置键已被删除,设置PUBLIC_ROLE_LIKE = "Gamma"
具有相同的功能。