Управление затратами Power Bi Azure — токен oauth
Я использую соединитель Azure Cost Management для получения данных непосредственно из Power Bi. Существует процесс аутентификации, который на основе личной учетной записи генерирует токен OAuth (автоматически). Токен действителен только 1 час. Могу ли я иметь более длительный срок действия? Я добавил новую политику, но она предназначена только для субъекта-службы, а не для личной учетной записи.
1 ответ
Подход 1 По умолчанию токен срока действия доступен в течение 1 часа или максимум 60–75 минут в зависимости от надежности службы, и вы не можете увеличить время жизни сеанса токена доступа для учетных записей пользователей, поскольку политики срока действия токена доступа могут применяться только к службе. основной, а не учетной записи пользователя. Также не рекомендуется увеличивать сеанс пользователя, чтобы избежать злонамеренной активности. См. этот документ: https://learn.microsoft.com/en-us/azure/active-directory/develop/configure-token-lifetimes#create-a-policy-for-web-sign-in «Это может быть установить для всех приложений в вашей организации или для определенного субъекта-службы. Они также могут быть установлены для нескольких организаций (мультитенантное приложение)».
Подход 2 Вместо увеличения срока действия маркера доступа можно обновить маркер доступа до истечения срока его действия.
Способ 1. Вы можете настроить одну настраиваемую функцию для создания токена обновления и получения токена доступа в ответ для ваших учетных записей пользователей, как ответ, представленный на этом форуме Power BI — [https://community.powerbi.com/t5/Power- Query/Channel-Advisor-API-Connection-with-auth-key-creation/td-p/2208091], а затем используйте токен ответа для доступа к данным выставления счетов Azure в Power BI.
Способ 2. Токены доступа представляют собой либо токен Azure AD для пользователей организации, либо токен внедрения, который можно отправлять клиентам, получающим доступ к вашим данным. Поскольку вы используете токен Azure AD, вы можете обновить токен следующими способами:
Напрямую через
setAccessToken
APIawait report.setAccessToken
(newAccessToken)
Вручную через
getNewUserAccessToken()
. Эта функция вызовет приложение на серверной части и сгенерирует и обновит токен доступа.
- Автоматически путем установки обработчика событий в конфигурации внедрения и вызова обработчика событий для создания нового токена до истечения срока действия текущего набора токенов.
accessTokenProvider
параметр функции в конфигурации внедрения. Когда срок действия токена близок к истечению, он встраивает config, вызываетaccesstokenProvider
и получает новый токен.