集成嵌入技术的介绍和问题的排查方法思路

常见问题及处理方式:

1.如何验证token中数据权限配置是否正确?

  • 使用超管的身份在浏览器直接调用接口获取某个 token 最后的配置信息

  • /api/dash/util/tokenInfo?t=xxxxxxx

集成嵌入技术的介绍和问题的排查方法思路 - 图1

  • 判断返回值是否包含 filterMap 这个字段,如果没有包含说明生成 token 的输入有问题,请参考接口文档检 查输入格式

  • 如果包含了 filterMap 这个字段,需要一一核对下里面每个配置信息是否正确

  • 首先要确定下行权限希望对哪个模型进行控制,打开对应的模型连接,在控制台输入store.current.config

集成嵌入技术的介绍和问题的排查方法思路 - 图2

  • filterMap 里的配置信息一定要和这里的配置信息保持一致,filterMap 的 key 要和 dataConnectionId 保持一致,database 和 tableName 也要和模型上的这个配置保持一致,database 大部分数据源一定要传,要和模型上是否要database要保持一致,这里要注意是大小写敏感的,很多客户因为大小写不一致导致的权限不生效

  • 自定义SQL的情况验证: 集成嵌入技术的介绍和问题的排查方法思路 - 图3

  • 上图中两张表,第一张是自定义SQL,这个时候只需要校验 tableExprId 是否一致就可,第二张图是原始表,需要校验 database + tableName 是否一致

  • 其他特殊情况:如果 filterMap 里设置的这个字段不存在模型上,目前产品策略是也不会生效,直接忽略,后面可能会增加开关控制是否报错之类的

2.如何验证 token 中资源权限配置是否正确?

  • 资源权限生效生成token时必须配置两个字段 openRp 和 resourcePermissions

  • 确认所限制的资源是否正确,资源 ID 和资源类型

3.onceToken 如何理解

  • onceToken 是为了加强集成的安全性,通过在生成 token 时加 once: true 参数来生成 onceToken

  • 一个 onceToken 只允许在第一次打开的浏览器访问,其他浏览器无法二次打开访问

  • 由于 onceToken 背后依赖 cookie 的实现,所以要想实现 onceToken 的集成,必须满足下面两个条件中 的一个

  • 客户业务系统域名和有数 BI 的域名是否同一个子域名,比如都以 ".youdata.com" 结尾

  • 有数 BI 的域名必须要保证 https 的配置

  • 因为每个 onceToken 都会独立生成一个 cookie,同一个浏览器上不建议同时使用太多的 onceToken,建 议通过有效期配置和一个token里包含多个报告权限的来避免重复生成 token。另外生成 token 太多对性能 上也是有开销