powershell - Power BI:延长通过 Get-PowerBIAccessToken 获取的访问令牌的过期时间
问题描述
我可以使用此命令通过 Power shell 获取 Power BI 令牌Get-PowerBIAccessToken
令牌有效,但此令牌的到期时间为 1 小时。
我想将此令牌延长至 1 天,但我找不到如何做到这一点的信息。
我从主帐户登录到 PowerShell。
我尝试创建New-AzureADPolicy
具有新到期时间值的令牌,但现在我无法将此策略分配给当前用户(主帐户)。据我了解,此政策只能分配给服务原则,我不是服务原则
您有任何解决方案来延长令牌的生命周期吗?
解决方案
如果您正在运行安全的无人值守服务,最好的方法是使用仅应用身份验证(也称为“服务到服务”)来获取对 Power BI 服务的访问令牌。你的应用对 Power BI 的访问将不依赖于任何用户的帐户,它将拥有自己的服务标识。
您可以阅读有关 Power BI 支持仅应用程序访问 Power BI API 的更多信息:https ://docs.microsoft.com/en-us/power-bi/developer/embed-service-principal
使用仅限应用程序的流程,您有两个选项来验证应用程序:
- 使用证书 - 这是更安全、推荐的方法
- 使用客户端机密 - 这不太安全,并且具有更高的安全风险
Power BI cmdlet 支持两种仅应用身份验证模式。例如,要使用证书进行身份验证,很简单:
Connect-PowerBIServiceAccount -ServicePrincipal `
-Tenant "{tenant-id-or-domain}" `
-ApplicationId "{client-app-id}" `
-CertificateThumbprint "{cert-thumbprint}"
或者,使用客户端密码:
$clientSecret = Get-SecretFromSomewhereSafe # Do NOT include the secret in your script!
$cred = [PSCredential]::new("{client-appid}", $clientSecret)
Connect-PowerBIServiceAccount -ServicePrincipal `
-Tenant "{tenant-id-or-domain}" `
-Credential $cred
一旦你连接了任何一种方法,那么你只需在使用它之前立即获得一个访问令牌:
Get-PowerBIAccessToken
如果现有的缓存访问令牌仍然有效,它将被返回。如果它已过期,该 cmdlet 将负责检索一个新的。
推荐阅读
- scikit-learn - 从 IBM Watson Studio 中的 GitHub 存储库更新 joblib 库时出现问题
- amazon-web-services - 如何使用 SecretAccessKey 和 AccessKeyId 从 s3 存储桶中使用 curl 下载安全文件
- c - C - 这段代码有什么问题,用户输入他的猜测后它不会继续?
- c# - 按住时的 Xamarin GestureRecognizer
- nsis - 从 NSIS 中的变量中减去
- python - 如何在没有装箱的情况下动态访问python中的对象属性?
- vb.net - 如何检测juul何时开始充电?在 ubs (vb.net)
- python - 根据时间间隔拆分 csv 文件
- linux - 联机帮助页中斜体和粗体周围的多余空间?
- postgresql - 如何将 Firebird 的触发器迁移到 PostgreSQL