Power BI Embedded(App Owns Data)延长embedToken过期时间方案咨询
Power BI Embedded App Owns Data模式Token有效期问题解决方案
我来帮你拆解这个问题的关键点和解决步骤:
一、直接修改tokenResponse.Expiration为什么不生效?
这种方法完全不可行。因为Embed Token的有效期是在你调用Power BI REST API(比如GenerateTokenInGroup)生成它时,就由API服务器确定并固化的,你在本地修改返回对象里的Expiration字段只是更改了本地数据,实际生效的还是API生成时设置的有效期。
正确的做法是:在请求生成Embed Token的API时,就通过expiration参数指定你想要的有效期(Power BI平台上限是24小时)。但这里有个核心前提:用来调用这个API的AAD AccessToken的有效期必须比你设置的Embed Token有效期更长,否则Embed Token的有效期会被限制为AAD AccessToken的剩余有效期——这也是你之前改了Embed Token过期时间但还是1小时失效的根本原因。
二、修改AAD AccessToken生命周期的Azure门户操作步骤
要延长AAD AccessToken的有效期,你可以通过Azure门户针对你的应用注册/服务主体配置令牌生命周期,具体步骤如下:
- 登录Azure门户,搜索并进入Azure Active Directory服务。
- 在左侧导航栏中选择企业应用程序,然后找到你用于Power BI Embedded的服务主体(对应你App Owns Data模式里的应用注册)。
- 进入该企业应用的详情页面后,在左侧菜单中找到令牌配置选项并点击进入。
- 点击页面上方的添加配置按钮,在弹出的配置窗口中:
- 令牌类型选择访问令牌(Access Token)。
- 在生命周期区域,设置你需要的最大有效期(比如输入10,单位选择“小时”),也可以根据需求设置最小有效期。
- 如果只想让这个配置对Power BI API生效,可以在受众字段中填入Power BI API的标识符:
https://analysis.windows.net/powerbi/api,这样其他场景的AccessToken不会受影响。
- 确认配置无误后,点击保存即可。
注意:这个配置只会对新生成的AAD AccessToken生效,之前已生成的令牌仍会按原有效期过期。配置完成后,你再生成Embed Token时,就可以指定最长24小时内的有效期(只要AAD AccessToken的有效期足够覆盖它)。
内容的提问来源于stack exchange,提问作者donquijote
相关产品推荐
相关产品推荐

