本文說明如何為 Azure 受控 Grafana 資料平面 API 取得 Microsoft Entra ID 存取權杖,以便您能夠以程式設計方式呼叫 Grafana API。
使用 Azure 受控 Grafana 的對象 https://dashboard.azure.com ,以透過 Microsoft Entra ID 對 Azure 受控 Grafana 資料平面 API 進行驗證。
根據你的情況選擇一種代幣取得方式。
先決條件
- 一個有有效訂閱的 Azure 帳號。
- 一個 Azure 管理的 Grafana 工作區。 如果你沒有,請建立一個 Azure 受控 Grafana 工作區。
- 使用者、服務主體或受管理身份,並有 Azure 受控 Grafana 角色指派,例如 Grafana 檢視器、Grafana 編輯器或 Grafana 管理員。要指派角色,請參見「管理使用者與身份的存取與權限」。
選擇一種代幣取得方式
Option 1: Azure CLI (interactive testing)
執行此指令以取得 Azure 受控 Grafana 受眾的存取權杖:
az account get-access-token --resource https://dashboard.azure.com --query accessToken -o tsv
如果你打算執行本文中的驗證指令,請將標記存入一個 shell 變數中:
TOKEN=$(az account get-access-token --resource https://dashboard.azure.com --query accessToken -o tsv)
選項二:程式碼(應用與自動化情境)
當您在程式碼:https://dashboard.azure.com/.default中使用受控識別或服務主體驗證時,請要求此範圍的權杖。
如這個 Python 範例所示,使用 DefaultAzureCredential:
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
token = credential.get_token("https://dashboard.azure.com/.default")
print(token.token)
驗證 API 存取
取得權杖後,進行一次快速呼叫,以確認驗證和權限是否有效。 使用您的端點 URL 取代 <grafana-endpoint-URL>。
如果你使用程式碼選項,請在執行 curl 之前,先使用你的權杖值設定 shell 變數:
TOKEN="<access-token>"
GRAFANA_ENDPOINT="<grafana-endpoint-URL>"
curl -i -H "Authorization: Bearer $TOKEN" "$GRAFANA_ENDPOINT/api/org"
預期結果:具有有效 JSON 主體的 HTTP 200 回應。 回應標頭在不同請求間可能有所不同。
用同一個Authorization: Bearer標頭模式呼叫其他 Azure 受控 Grafana data plane API endpoints。
故障排除
若請求失敗且出現 401 授權錯誤:
- 檢查權杖對象是否為
https://dashboard.azure.com。 - 請確認呼叫者對 Azure 受控 Grafana 資源具有 Grafana 角色指派。
- 如果最近角色分配有變動,請等幾分鐘再試一次。
如需更多協助,請參閱「常見Azure 受控 Grafana問題故障排除」。