簡體   English   中英

Power BI 活動日志 REST API 獲取訪問令牌

[英]Power BI Activities Log REST API Get Access Token

我一直在瘋狂地試圖從 Power BI Rest API 中提取活動日志。 我可以使用 Microsoft https://docs.microsoft.com/en-us/rest/api/power-bi/admin/getactivityevents中的“試用”方法來做到這一點

我必須登錄才能使用此工具,然后我得到一個持有者 JWT 令牌,有效期為 1 小時,可用於腳本內后續獲取請求的 header 中。 但是令牌會在 1 小時后過期,我必須重新登錄才能獲取新令牌並更新我的腳本。 我試圖在每次到期時檢索 JWT 令牌,而無需通過 GUI 登錄。 這是為了自動從 Power BI 獲取日志以發送到安全應用程序進行分析。 在 Azure/Power BI 方面,我使用此鏈接https://dev.powerbi.com/Apps注冊了一個本機應用程序。 在 Azure 應用程序注冊上,我已授予該應用程序所有 API 權限。

我有一些示例 python 代碼使用我試圖在這里工作的 adal 庫。我想 Powershell 解決方案也可以接受,但我更喜歡使用 python。

import adal
import requests
import json
import pandas


authority_url = 'https://login.windows.net/common'
resource_url = 'https://analysis.windows.net/powerbi/api'
client_id = 'my client ID'
client_secret = 'my client secret'
context = adal.AuthenticationContext(authority=authority_url,
                                     validate_authority=True,
                                     api_version=None)

# get JWT access token without having to log in
token = context.acquire_token_with_client_credentials(resource_url, client_id, client_secret)

access_token = token.get('accessToken')
logs_request_url = "https://api.powerbi.com/v1.0/myorg/admin/activityevents?startDateTime=%272021-02-20T00%3A00%3A00.000Z%27&endDateTime=%272021-02-20T23%3A59%3A59.000Z%27"

header = {'Authorization': f'Bearer {access_token}','Content-Type': 'application/json'}
response = requests.get(url=logs_request_url, headers=header).content
logs_request = json.loads(response)
# Power BI Activity Logs
print(logs_request)

這段代碼給了我一個空的響應。 如果我粘貼使用“試用”工具登錄時生成的 access_token,它就可以工作。 如果可能,我會盡量避免手動登錄,因為此腳本將作為計划任務運行。 我會很感激這方面的任何幫助,因為我正瘋狂地試圖讓它發揮作用。

我看到您已授予該應用程序的必要權限。

在使用 API 之前,您需要在 Power Bi 租戶級別啟用以下設置(允許服務主體使用只讀 Power BI 管理 API ):

  • 登錄到 Power BI 管理門戶。

在此處輸入圖像描述

  • 訪問租戶設置。

  • 在管理員 API 設置下,您將看到允許服務主體使用只讀 Power BI 管理員 API。

在此處輸入圖像描述

  • 啟用上述設置。

您可以參考這篇文章以獲得詳細說明。 : https://docs.microsoft.com/en-us/power-bi/admin/read-only-apis-service-principal-authentication

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM