Power BI: продлить срок действия маркера доступа, полученного с помощью Get-PowerBIAccessToken - PullRequest
0 голосов
/ 12 июня 2019

Я могу получить токен Power BI с помощью Power shell, используя эту команду Get-PowerBIAccessToken

Токен действителен, но срок действия этого токена составляет 1 час.

Я хочу расширить этот токендо 1 дня, но я не могу найти информацию, как я могу это сделать.

Я вошел в PowerShell с главной учетной записи.

Я попытался создать токен New-AzureADPolicy с новым значением времени истечения, но теперь я не могу назначить эту политику для текущего пользователя (основной учетной записи).Как я понимаю, эту политику можно назначить только для принципа обслуживания, а я не принцип обслуживания

Есть ли у вас какое-либо решение для продления срока службы токена?

1 Ответ

2 голосов
/ 13 июня 2019

Если вы используете автоматическую службу secure , лучше всего будет использовать проверку подлинности только для приложений (она называется «служба в службу») для получения токена доступа к службе Power BI.Доступ вашего приложения к Power BI не будет зависеть от учетной записи какого-либо пользователя, у него будет собственный идентификатор службы.

Подробнее о поддержке Power BI для доступа только к приложению к Power BI API можно узнать: https://docs.microsoft.com/en-us/power-bi/developer/embed-service-principal

В потоках только для приложения у вас есть два варианта аутентификации приложения:

  • С сертификатом - это более безопасный, рекомендуемый подход
  • Ссекрет клиента - он менее защищен и несет в себе более высокий риск безопасности

Командлеты Power BI поддерживают оба режима проверки подлинности только для приложений.Например, для аутентификации с использованием сертификата это просто:

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

Если существующий кэшированный токен доступа все еще действителен, он будет возвращен.Если срок его действия истек, командлет позаботится о получении нового.

...