嵌入式 BI 实战(三):SSO 单点登录与用户上下文数据过滤

在 DIV 集成解决了"视觉融合"之后,我们必须面对下一个挑战:用户认证。如果客户已经登录了你的 SaaS 系统,再弹出一个 Wyn 登录框,不仅体验割裂,更会让用户怀疑系统的专业性。而且对于企业用户来说,业务系统和 BI 本身就是一个完整的业务流程。**用户应该只登录一次。**所以,嵌入式 BI 的第一步,不是重新设计登录页,而是: > 让 Wyn 识别当前业务系统中的用户。

发布于 2026/08/04 11:46

Wyn 商业智能

前言

在 DIV 集成解决了"视觉融合"之后,我们必须面对下一个挑战:用户认证。如果客户已经登录了你的 SaaS 系统,再弹出一个 Wyn 登录框,不仅体验割裂,更会让用户怀疑系统的专业性。而且对于企业用户来说,业务系统和 BI 本身就是一个完整的业务流程。**用户应该只登录一次。**所以,嵌入式 BI 的第一步,不是重新设计登录页,而是:

让 Wyn 识别当前业务系统中的用户。

这就是 SSO 单点登录要解决的问题。


image


一、SSO 单点登录:告别二次登录

Wyn 提供了多种单点登录方案,从简单到复杂,覆盖不同场景。

方案一:Token 传递(最简单)

适用于快速对接。后端生成带有时效性的 Token 拼接到请求中,Wyn 服务端验证后自动完成登录。


步骤: 使用系统管理员账号登录,从系统后台生成对应用户的令牌并复制,该令牌包含用户标识(如 userid、username),拼接到 iframe 的 URL 上:


HTML

http://localhost:51980/reports/view/d81b26d3-bb8e-4e7c-beeb-3c634205966b?theme=default&lng=zh-CN&token=69A6A52C8C8DD6B6C88CEE4172CCBB53D9E3CBEAFB18B710DEB680594ADE70C7

image

  • 适用场景: 内部系统快速验证、POC 演示。

  • 局限: Token 长期有效,安全性依赖 URL 保密;无法动态传递用户上下文(如角色、部门)。

方案二:自定义安全提供程序(企业级)

若您的系统已有成熟的用户体系,可通过实现 Wyn 的安全提供程序接口,让 Wyn 在收到请求时回调您的系统完成用户验证。该方案本质上是开发一个实现 Wyn 规定接口的 .NET 类库(DLL),编译后放入插件目录,并在 Wyn 管理后台启用即可。

核心接口体系

Wyn 提供了一套高度模块化的安全提供程序接口,开发者只需编写少量代码,即可将 Wyn 的用户认证逻辑重写为指向业务系统的实现:

  • ISecurityProvider:核心逻辑类,负责生成/校验 Token、获取用户角色、组织机构及上下文信息。

  • ISecurityProviderFactory:工厂类,负责根据外部配置(如 API 地址、数据库连接字符串)初始化安全提供程序实例。

  • IExternalUserContext:用户信息访问器,用于获取用户的单值或多值属性(如所属区域、职级等)。

  • IExternalUserDescriptor:定义用户的基础属性,包括 ID、名称和提供程序类型。

前置配置灵活性

为提高适配效率,Wyn 支持在前端页面直接修改集成配置(如数据库连接字符串或 API 接口地址),无需重新编译。这一能力通过 ISecurityProviderFactorySupportedSettings 属性实现——开发者可将配置项以 key:value 形式暴露给该对象,从而避免硬编码,极大提升了部署和运维的灵活性。


配置完成后,用户访问 Wyn 时,系统会通过 Cookie 或 Header 中的票据自动回调您的认证服务,实现无感登录。

  • 适用场景:企业级系统、已有成熟用户体系、需深度集成的项目。

方案三:OAuth 2.0 / CAS / OIDC

Wyn 支持对接 OAuth 2.0 授权服务器,如 Azure AD、Okta、Auth2.0。用户在 Wyn 登录页点击"企业登录",跳转到企业统一认证页面,认证通过后自动回调登录 Wyn。


image

  • 适用场景:中大型企业、已有统一身份认证平台。

  • 配置方式:在 Wyn 系统管理后台的系统设置「系统配置 → 单点登录」中选择对应的认证协议来配置,无需改动业务代码。


二、行级数据权限的传递:千人千面的数据安全

无论是哪种 SSO 方案,登录成功后,你都可以将用户的角色、部门、区域等信息传递给 Wyn。Wyn 的数据源中可以根据这些信息动态过滤数据。


例如,你的用户表中有一个"区域"字段,那么在 Wyn 的数据集 SQL 中可以这样写:


sql

SELECT * FROM 销售表 WHERE 区域 = {@区域}

Wyn 在执行查询时,会从当前登录用户的上下文中获取"区域"这个参数的值,实现"不同区域的人看到不同的数据"。


image

进阶:多维度权限控制

除了区域,你还可以传递更多上下文:


sql

*-- 多维度权限控制示例*SELECT * FROM 销售表 
WHERE 区域 = {@区域} 
  AND 部门 = {@部门}
  AND 角色 IN ({@角色})

image


三、结语

SSO 解决了"谁可以看"的问题,行级权限解决了"可以看什么"的问题。两者结合,你的 SaaS 系统才能真正实现安全的数据分析能力。


但如果你想让客户不仅能"看",还能自己"做"——在系统里拖拽设计报表,怎么办?下一篇,我们将介绍 Wyn 的嵌入设计器与 OEM 白标能力。

Wyn 商业智能软件| 下载试用

Wyn 是西安葡萄城自主研发的嵌入式商业智能软件,能帮助企业用户发现更多的数据潜在价值,为管理者制定决策提供数据支撑。Wyn 具备完整的嵌入式分析能力,能够与其他软件深度集成,也可独立部署使用,快速提升数据展示和分析能力。

Wyn 支持公有云、私有云和本地部署等多种部署方式,并能在Java、.net、PHP等开发平台中使用。您可以将其与ERP、CRM、OA等业务系统,以及钉钉、企业微信等APP进行深度集成,持续交付BI和报表功能,助力您的客户发现数据的价值。

了解更多关于 Wyn 嵌入式商业智能软件的内容,请点击此处访问官网,立即下载体验。

相关产品
推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态