集成应用免登对接示例
概述
任务简介
本文档说明如何将简道云当前登录用户的用户名动态传递给 FineBI,实现不同用户单击「进入应用」后分别以各自对应的 FineBI 账号登录,保留 FineBI 内的数据权限隔离。
本文仅讲解具体实现示例,接口理论请参考:集成应用免登对接说明
注:简道云仅负责提供接口,帮助获取经过验证的用户身份信息(如用户编号),第三方系统需自行搭建获取服务,以及维护本系统的登录态(Session、Token、Cookie 等)。
整体流程
理解此方案的核心机制,有助于正确完成各步骤配置。整体流程如下:
1)用户在简道云单击「进入应用」,简道云将用户跳转到配置的「应用首页」(即中转服务),并在 URL 中附加 code 参数。
2)中转服务接收请求后,提取 code,调用简道云 API 换取当前简道云企业成员的编号。
3)中转服务将用户重定向至 FineBI 免登地址,URL 中携带获取到的简道云企业成员编号,作为 FineBI 用户名。
4)FineBI 识别 URL 参数,以该用户名自动完成登录。

示例环境说明
1)本文示例基于 PHP 中转服务实现免登对接,适用于以下部署架构:运维平台部署的FineBI项目、Tomcat部署包部署的FineBI项目。其他方式部署的FineBI项目不确保可行。
- 如果你的FineBI部署架构不在上述适用范围内,或无法在现有架构中配置 PHP 运行环境,建议改用 Java 或其他语言自行实现中转服务逻辑。
- 中转服务的核心功能是:接收简道云传入的 code 参数,调用简道云 API 换取用户编号,然后重定向至 FineBI 免登地址。实现语言不限,只要能完成上述流程即可。
2)本文所有操作步骤基于以下示例环境演示。实际操作时,请将表格中的示例值替换为你自己环境的实际值。
内容 | 示例说明 |
用户要求 | FineBI 用户名与简道云成员编号保持一致
|
环境要求 | FineBI 工程和中转服务满足以下条件:
|
地址信息 | FineBI工程地址:https://demo.fanruan.com/webroot/decision 中转服务地址:https://demo.fanruan.com/help/sso.php |
前提条件
开始配置前,请确认以下条件已满足。
简道云端
1)检查操作用户权限:仅简道云企业创建者与系统管理员支持配置集成应用
2)检查简道云版本:企业版及以上简道云支持集成应用功能。版本升级可点击:商务咨询。
FineBI 端
1)检查操作用户权限:仅 FineBI 超级管理员支持配置后台单点登录
2)检查中转服务所在环境:中转服务已开启 HTTPS 并配置可信域名(本文将中转服务放在了 FineBI 工程中,确保 FineBI 工程满足该条件即可)
3)确保 FineBI 关闭「点击劫持攻击防护」:允许 FineBI 页面被嵌入简道云中显示

4)确认中转服务所在服务器已安装并启用 PHP 运行环境:本方案的中转服务基于 PHP 文件实现,服务器必须具备 PHP 解析能力。FR/BI 的标准部署包为 Java 服务,默认不包含 PHP 环境,请确认服务器已单独安装 PHP(推荐 PHP 7.0 及以上版本),且 Web 服务器(Nginx/Apache 等)已配置 PHP 解析支持
简道云与 FineBI
1)检查用户匹配情况
简道云成员编号与 FineBI 用户名一一对应。

2)确认网络联通性
为实现单点登录,简道云服务端与中转服务必须网络互通(由于中转服务部署在FineBI服务器中,两者默认联通)
- 用户在简道云单击「进入应用」,简道云将用户跳转到配置的「应用首页」(即中转服务),并在 URL 中附加 code 参数。此步骤要求简道云服务端能通过网络访问到中转服务地址。
- 中转服务接收请求后,提取 code,调用简道云 API 换取当前简道云企业成员的编号。此步骤要求中转服务能通过网络访问到简道云 API 地址(公网)。
如果中转服务部署在纯内网环境中,请自行开放网络白名单,否则集成将无法生效。
第一步:在 FineBI 配置后台单点登录插件
此步骤开启 FineBI 对 URL 参数免登的支持。
1)在 FineBI 中进入「管理系统 > 插件管理」,安装「后台单点登录」插件。
2)安装完成后,进入「管理系统 > 系统管理 > 集成后台单点登录」页面。
3)在登录方案中选择「示例接口」,单击「保存」。
4)完成后,FineBI 接受通过 ?fine_username=用户名 参数传入的用户名进行免登。
注:本文为测试示例,因此使用了 FineBI 用户名明文传递方案,用户名暴露在 URL 和访问日志中,安全性相对较低。
在生产环境中,建议改用 FineBI 的 RSA 加密方案。详情请参见:后台单点登录RSA示例代码

第二步:在简道云创建集成应用
此步骤获取用于服务端身份验证的 Suite ID 和 Suite Secret。
1)登录简道云,进入「管理后台 > 基本信息 > 产品中心」页面。
2)单击「+ 集成更多应用」创建新的集成应用。

3)系统弹出「配置集成应用」对话框,填写配置信息,单击「创建」。
配置项 | 填写说明 |
应用名称 | 填写:FineBI |
应用描述 | 填写:集成 FineBI,以当前登录用户身份免登访问 |
可信域名 | 填写:demo.fanruan.com 中转服务所在的域名。本文将 sso 中转服务文件上传到了 FineBI 所在服务器,因此域名与 FineBI 工程一致 |
应用首页 | 填写:https://demo.fanruan.com/help/sso.php 中转服务的接收地址。本文将 sso 中转服务文件上传到了 FineBI 工程的 help 文件夹下 |

4)单击「编辑」按钮,进入集成应用配置详情页。
5)复制自动生成的 Suite ID 和 Suite Secret,请将两项凭证妥善保存,供中转服务配置使用。

第三步:部署中转服务
此步骤在企业服务端部署中转服务,完成简道云 code 的接收、用户信息的获取和到 FineBI 的跳转。
本文将中转服务放在了 FineBI 工程中,如不满足此条件,本文示例的中转服务配置不适用。
注意: 本方案的中转服务文件 sso.php 需要 PHP 运行环境支持。
FR/BI 标准部署包为 Java 服务,默认不包含 PHP 环境。部署前请先确认服务器已安装 PHP 且 Web 服务器已配置 PHP 解析,否则上传后的 PHP 文件将无法被正确解析。
1)准备 sso.php 文件
点击下载并解压,获得 sso.php 文件:sso.zip
修改以下内容并保存。
- https://你的FineBI域名:修改为你的FineBI工程地址。示例修改为https://demo.fanruan.com
- your_suite_secret_here:替换为第二步中获取的 Suite Secret
- your_suite_id_here:替换为第二步中获取的 Suite ID
- /webroot/decision:FineBI路径,一般无需修改
- /help/sso.php:php文件在FineBI工程webroot下的存储路径。即下一步的存储路径/help/sso.php

2)上传 sso.php 文件
将 sso.php 文件上传到 FineBI 工程的 webroot/help 文件夹下。
如果 FineBI 是多节点集群,有多个 bi-web 服务,需要分别上传到每个 bi-web 节点的 help 文件夹下。
注意:
- 对于运维平台部署的FineBI项目:默认在 bi-web 组件的外挂目录下存在 help 文件夹,请勿手动创建。
- 对于非运维平台部署的FineBI项目:若在 webroot 下未找到 help 文件夹,手动新建即可。
3)验证 sso.php 文件配置成功
访问 https://你的FineBI域名/help/sso.php
页面返回「缺少 code 参数」即说明文件部署成功,等待简道云传入 code 后可完整跑通。

第四步:启用集成应用
此步骤开启集成能力,并完整验证从简道云点击到进入 FineBI 的全流程。
在产品中心的 FineBI 集成应用卡片右侧,将开关切换至开启状态。

第五步:免登录效果展示
1)用户编号为「F000020」的用户,在简道云「产品中心」中单击「进入应用」。
2)浏览器地址跳转至中转服务地址,URL 中包含 code 参数。
3)中转服务处理完成后,浏览器跳转至 FineBI 。
3)FineBI 以当前简道云登录用户编号「F000020」作为用户名,自动完成登录。


400-111-0890
在线咨询