当前位置:首页 > 火币交易平台 > BI与SaaS如何碰撞火花,让数据处理更加轻松(下)

BI与SaaS如何碰撞火花,让数据处理更加轻松(下)

财掌柜中国3年前 (2022-07-22)火币交易平台239

背景

在上篇内容中,我们从SaaS各种功能的角度为大家介绍了在数据处理中SaaS的巨大价值,而本次我们将用实例将为大家展示SaaS与BI间的碰撞又会产生怎样的火花imtoken。

BI与SaaS集成示例

通常BI分析工具都提供了对于数据库的丰富接口,用以更加快捷高效地处理数据imtoken。此处我们以Wyn为例,它提供基于GraphQL的丰富的API接口,可以通过API和动态参数来根据用户上下文信息获取相应的数据和生成文档。具体嵌入方式可以根据SaaS系统情况进行合理调整。

1、创建数据源

对于多租户的场合imtoken,通常会基于用户进行分库处理,这种情况可以通过用户上下文信息,创建动态数据源:

1.1添加扩展参数imtoken,增加用户上下文的数据库信息

展开全文

1.2 创建用户时imtoken,绑定上该用户的数据库信息

1.3 创建数据源时imtoken,使用动态参数配置

2、创建角色和用户(使用内置用户)

2.1创建角色名:

POST /api/graphql?token=8908645b0958662d66731038944c7d236d3d7c1ee98e3e2de3c5268453965a8a

Content-Type: application/json

{"query":"mutation { addRole( roleName: \"2\" ) { name } }"}

2.2 POST提交:

POST /admin/api/accountmanagement/api/v1/roles?token=8908645b0958662d66731038944c7d236d3d7c1ee98e3e2de3c5268453965a8a

Content-Type: application/json

{"Name":"2"}

2.3为角色分配权限:

POST

/admin/api/accountmanagement/api/v1/roles/3f497dc1-66a6-45cb-a999-6c7f4b1bb15f/permissions?token=8908645b0958662d66731038944c7d236d3d7c1ee98e3e2de3c5268453965a8a

Content-Type: application/json

{"Permissions":["create-data-source","create-semantic-model","create-dataset","create-dashboard","view-dashboard","create-report","view-report","schedule-reports","create-input-form","view-revision","allow-sharing"]}

2.4 创建用户imtoken,并分配角色

POST /admin/api/accountmanagement/api/v1/users/?token=8908645b0958662d66731038944c7d236d3d7c1ee98e3e2de3c5268453965a8a

Content-Type: application/json

{"username":"2","email":"123@123.com","mobile":"","firstName":"","lastName":"","fullName":null,"password":"2","confirmPassword":"2","roles":["2"],"customizePropertyInfo":{"DBName":["Test"],"Password":["mAbQ5mlMDWck_xysj3rQ"],"Port":["3306"],"ServerIP":["192.168.32.100"],"Uid":["root"]}}

3、API生成Token

生成Token的API接口imtoken,除此之外所有的API调用都需要Token参数才能正确访问

POST /connect/token

Content-Type: application/x-

grant_type=password&username=admin&password=admin&client_id=integration&client_secret=eunGKas3Pqd6FMwx9eUpdS7xmz&access-token-lifetime=86400

* 注意申请token时应使用access-token-lifetime参数限制token的有效时长imtoken,单位为秒,长期无限制地使用永久Token,将可能由于Token堆积而影响登录性能 (永久Token可通过清理wynis数据库中grants表中的数据进行处理)

4、创建门户目录

4.1 获取最大分类ID

POST /api/graphql?token=8908645b0958662d66731038944c7d236d3d7c1ee98e3e2de3c5268453965a8a

Content-Type: application/json

{"query":"query { tags (type: \"system\") { id, parentId, order, name, url, color, iconCssClass, isFavorites } }"}

4.2 新建门户分类(order等于第一步返回值的最大值+1)

var order = Math.max(...res.data.tags.map((item) => item.order)) + 1;

POST

/api/graphql?token=8908645b0958662d66731038944c7d236d3d7c1ee98e3e2de3c5268453965a8a

Content-Type: application/json

{"query":"mutation { addTag(name:\"2\", urlName:\"2\", order: 1961, iconCssClass: \"mdi mdi-folder\", grant: [ {role:\"Everyone\", ops:[Read]} ] , color: \"null\", parentId: \"null\" ) { id } }"}

5、复制文档并上传(可选)

根据实际的业务场景imtoken,如果需要给每个用户增加可单独编辑保存的默认文档

可以通过以下2种方式进行处理:

5.1 利用Wyn Tools或其imtoken他工具复制文档并按租户重命名

5.2 批量上传文档(手动上传)

* 也可以通过角色权限分配的方式imtoken,将某个文档共享给某角色下的所有用户进行浏览

6、API分类

6.1 获取分类ID

POST /api/graphql?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

Content-Type: application/json

{"query":"query { tags { id, name}}"}

6.2获取文档ID

POST /api/graphql?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

Content-Type: application/json

{"query": "query { documenttypes(key:\"rdl\") { documents { id, title, type} } }"}

6.3给文档设置分类(请求参数的分类id和文档id来自前两步)

POST /api/graphql?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

Content-Type: application/json

{"query":"mutation { tagDocument(tagId: \"eafd31d7-7aad-40b7-9206-f4866127a853\", documentId: \"f30ce97b-7369-424e-8b39-8ffa6b305838\") }"}

7、API文档授权

7.1 获取文档ID

POST /api/graphql?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

Content-Type: application/json

7.2获取角色名称

GET /admin/api/accountmanagement/api/v1/roles?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

{"query": "query { documenttypes(key:\"rdl\") { documents { id, title, type} } }"}

7.3给文档分享角色权限

(参数用到第一步返回的报表IDimtoken,以及第二步要分享的角色名称)

POST /api/graphql?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

Content-Type: application/json

{"query":"mutation {\n\t\t\tupdatePermissions( documentId: \"f30ce97b-7369-424e-8b39-8ffa6b305838\" , grant: [ { role:\"1\", ops: [ Read, Update ]}] )\n\t\t}"}

如需通过带Token的URL进行集成,可继续参考以下步骤imtoken。

8、拼接URL

8.1 获取文档ID

POST /api/graphql?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

Content-Type: application/json

{"query": "query { documenttypes(key:\"rdl\") { documents { id, title, type} } }"}

8.2 生成Token (参考3 生成Token的内容中 关于参数的定义)

POST /connect/token?token=77c9bfccf16659f2ab62cf7796b640156f13cea35bc30cde1597ddb4457720c7

Content-Type: application/x-

grant_type=password&username=admin&password=admin&client_id=integration&client_secret=eunGKas3Pqd6FMwx9eUpdS7xmz&access-token-lifetime=86400

8.3 拼接生成URL

9、用户身份信息集成(单点登录)

对于SaaS平台通常都有独立的用户认证体系imtoken,而利用BI分析工具,我们可以直接实现用户信息集成,实现多个平台账户统一身份认证,统一管理,以下是关于单点登录的介绍:

9.1整体流程

9.2 自定义安全提供程序简介

在Wyn提供的自定义安全提供程序接口中,我们需要根据调用时请求的token,完成相应的认证与授权逻辑,这个token根据业务需要,可以来源于一个统一的身份认证平台,或是由某个加密协议,将用户信息保存在token中实现权限的传递imtoken。

而如何解析这个token,并实现用户的授权,就是需要在安全提供程序中实现的内容imtoken。

9.3 自定义安全提供程序-用户校验

当用户从画面上登录imtoken,或者通过前述的connect/token api调用获取登录token时,会使用GenerateTokenAsync方法,实现用户的校验

而对于集成了自定义安全提供程序的SaaS平台imtoken,我们可以将当前使用者的token作为用户名和密码,发起登录请求:

可以看到在SaaS平台中用户的token就传递到了Wyn的认证程序中,而这个token又是哪个角色,拥有哪些权限,可以通过向认证平台发起请求的方式获取imtoken。

9.4 自定义安全提供程序-上下文授权

上文中说明了如何实现用户的认证及登录imtoken,而对于SaaS平台,每个用户的上下文信息(数据库连接信息,角色等)就需要从统一身份认证的接口中提供,我们既可以将它在token中加密保存,也可以根据获取到的token动态从身份认证接口中获取:

GetUserInfo接口:

登录成功:

这样我们就可以通过在用户认证服务中集中配置,配合单点登录组件的认证逻辑,实现对各个租户的数据库及权限的统一管控imtoken。

总结

本文为大家详细介绍了BI与SaaS的碰撞,大家如果在操作过程中遇到什么问题可以在评论中提出imtoken。

扫描二维码推送至手机访问。

版权声明:本文由财掌柜中国发布,如需转载请注明出处。

本文链接:https://www.czgqygl.com/pt/677.html

分享给朋友:

“BI与SaaS如何碰撞火花,让数据处理更加轻松(下)” 的相关文章

智能建造(IBTC)培训平台操作指南

智能建造(IBTC)培训平台操作指南

★操作指南★ 智能建造(IBTC)培训平台操作指南,详细讲解学员平台操作流程btc。 平台操作全流程 一、平台登录 二、学习 三、模拟练习 四、考前设备检测 五、考试 六、成绩查询 七、证书查询 一、平台登录 学员登录智能建造培训平台:。 登录账号:学员身份证号 初始密码:学员身份证号后六位 二、学...

元宇宙的实现依靠什么?云桌面又是如何助力元宇宙的

元宇宙的实现依靠什么?云桌面又是如何助力元宇宙的

继去年底将“元宇宙”写入“十四五”产业规划后,上海再度发力“元宇宙”元宇宙。现在,似乎每个人都在谈论元宇宙。尽管大多数人并不太确定它究竟是什么,或者它在现实世界中具体有哪些用途,对我们每一个人的学习、生活和工作会产生哪些影响。在一些人看来,所谓元宇宙,其实就是“永久可用的 3D 环境”。那么元宇宙到...

NFT新范式,OKALEIDO创新NFT聚合交易生态

NFT新范式,OKALEIDO创新NFT聚合交易生态

NFT板块正在多层次发展,目前NFT逐渐分化出了包括艺术品、收藏品、PFP、音乐、摄影、游戏道具、社交、域名、运动等多个板块 ,其中PFP头像、收藏品以及艺术品板块占据着主要的市场份额nft。这意味着,市场目前仍旧是由NFT 1.0的意识形态主导。 NFT 1.0 项目,通过他们的数字收藏品建立封闭...

平头哥(PTG)用动画告诉你怎么玩!

平头哥(PTG)用动画告诉你怎么玩!

PTG-DAO 源起: PTG 是由 PTG DAO 社区发行的一种超级共识通证,通证的简称 PTG 是“平头哥”全拼的缩写usdt。源自全球百大社区区块链爱好者,自发组织,对平头哥(蜜獾)精神的推崇,实施的一场自由人争取自由协作的社会革命! PTG-DAO 文化理念 :勇敢 创新 传承 共创...

主流持续震荡,U为何选择壮士断腕?市场变数频生下出路究竟在何方

主流持续震荡,U为何选择壮士断腕?市场变数频生下出路究竟在何方

市场盘点 7月的天阴晴不定,前几日还是烈阳当头,酷暑难耐,在这种天气下,和朋友互相调侃,感觉我们和烤肉相比,只差一撮孜然,可就在今天突然风雨交加,电闪雷鸣usdt。大热天里居然令人感觉到了丝丝凉意,气温转换之快让人措手不及,这也是近期流感频发的原因,大家注意防护,别让流感钻了空子。 话说回来,这天气...

当我们在看Etherscan的时候,到底在看什么?

当我们在看Etherscan的时候,到底在看什么?

当我们在看Etherscan的时候eth,到底在看什么? 作者:shisilueth,腾讯IEG后台策略安全工程师 没错!这篇就是给新手看的eth,区块链数据应用的自助指南! 伴随上周爱死机的NFT事件,WEB3的世界里基建(与用户认知)严重薄弱的缺点,俨然成了众多爱好者想要深入的阻碍(实在被mi...