美文网首页统计分析
superset0.36嵌入后台应用

superset0.36嵌入后台应用

作者: Java全栈攻城狮 | 来源:发表于2020-06-16 17:26 被阅读0次

    1. 修改配置文件

    修改superset中的config.py配置文件,将PUBLIC_ROLE_LIKE_GAMMA改为True。
    
    注释意思:
    
    授予公共角色与GAMMA角色相同的权限集。
    
    如果想让匿名用户查看,可以设置这里,在仪表盘对特定数据集的授权显示,也在这里设置。
    
    image

    2. 去掉X-Frame-Options限制

    image
        避免iframe跨站访问问题。
    

    3. 加入数据库权限这里加入所有数据库权限

    image image

    其中:

    can explore on Superset为导出图表

    can explore json on Superset为导出图表json

    all database access on all_database_access访问所有数据库权限,也可以设置单个

    4. iframe嵌入

    image

    5. iframe跨域集成时遇到难题

    第一道墙

    首先,认识一下 X-Frame-Options。
    The X-Frame-Options HTTP 响应头是用来给浏览器 指示允许一个页面 可否在 <frame>, <iframe>, <embed> 或者 <object> 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。

    X-Frame-Options 有三个可能的值:

    X-Frame-Options: deny # 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
    X-Frame-Options: sameorigin # 表示该页面可以在相同域名页面的 frame 中展示。
    X-Frame-Options: allow-from https://www.baidu.com/ # 表示该页面可以在指定来源的 frame 中展示。
    
    

    在0.27中保持这个配置项为空即可,在master中远远不够。

    第二道墙

    这么修改后可能还会遇到在打开iframe时出现错误

    这里的原因可能是——开启public角色的访问权限后,真正放到iframe中还需要解决跨域问题,而老版本中对http_headers配置项的修改不起作用,只能直接对explore_json去除csrf保护。
    添加配置文件中的👇

    WTF_CSRF_EXEMPT_LIST = [
        "superset.views.core.explore_json"
        ]
    
    

    再次访问有效,所以在master版本中,主要是依靠对特定接口取消保护来达到目的。

    第三道墙

    如果使用nginx进行部署的话,还需要配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:

    add_header X-Frame-Options sameorigin always;
    
    

    注意:

    1. 修改配置项http_headers为 {"X-Frame-Options": ""} 对授权无用,但对限制有用;

    2. 用户访问不在自己角色可能访问的数据,只是权限问题,可能报错:

    相关文章

      网友评论

        本文标题:superset0.36嵌入后台应用

        本文链接:https://www.haomeiwen.com/subject/twprxktx.html