You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI自定义视觉对象的SSO(单点登录)实现方案咨询

PowerBI自定义视觉对象实现SSO并获取用户会话令牌的技术方案

核心前提与限制

  • PowerBI自定义视觉本身无法直接获取用户原始会话令牌,必须依赖官方认证机制,严格遵循平台安全规范,禁止绕过权限限制。
  • 所有令牌操作仅可用于授权的后端流程,不可泄露或滥用。

实现步骤

1. PowerBI Embedded场景下的AAD SSO集成

如果自定义视觉嵌入在PowerBI Embedded应用中,可通过以下方式获取令牌:

  • 嵌入配置中启用effectiveIdentity参数,传递用户AAD身份至视觉对象。
  • 利用PowerBI视觉API的authenticationManager接口请求临时令牌,代码示例:
    import { IVisualHost } from "powerbi-visuals-api";
    
    export class CustomVisual implements IVisual {
        constructor(private host: IVisualHost) {
            // 请求针对后端API的AAD令牌
            this.host.authenticationManager.getAadTokenAsync("<你的后端API资源ID>")
                .then(token => {
                    // 使用令牌调用后端流程
                    fetch("<你的后端API地址>", {
                        headers: {
                            "Authorization": `Bearer ${token}`
                        }
                    });
                });
        }
    }
    

2. PowerBI服务中的自定义视觉实现

若视觉发布到PowerBI服务,需通过AAD应用权限委托实现:

  • 注册AAD应用,配置委托权限,允许代表用户访问后端API。
  • 在自定义视觉中调用getAadTokenAsync方法,该方法会自动以当前PowerBI用户身份发起委托认证,获取对应后端API的令牌。
  • 确保后端API已配置AAD认证,且PowerBI租户已授权该AAD应用的权限。

3. 令牌安全使用规范

  • 令牌为短期有效,需在过期前重新请求,禁止长期缓存。
  • 令牌仅可用于指定的后端API资源,不可跨服务使用。
  • 禁止在前端代码中打印或暴露令牌,所有后端调用需通过视觉的安全通道发起。

常见问题排查

  • 无法获取令牌时,检查AAD应用权限配置是否正确,以及PowerBI用户是否拥有后端API访问权限。
  • 嵌入场景下,确认宿主应用的嵌入令牌已正确配置effectiveIdentity参数。

内容的提问来源于stack exchange,提问作者788498

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 01:19:58