この記事では、Grafana API をプログラムで呼び出すことができるように、Azure Managed Grafana データ プレーン API のMicrosoft Entra ID アクセス トークンを取得する方法について説明します。
Azure Managed Grafana のデータ プレーン API に対して Microsoft Entra ID 認証を行うには、Azure Managed Grafana の audience https://dashboard.azure.com を使用します。
シナリオに基づいて 1 つのトークン取得方法を選択します。
Prerequisites
- アクティブなサブスクリプションを持つ Azure アカウント。
- Azure Managed Grafana ワークスペース。 お持ちでない場合は、Azure Managed Grafana ワークスペースを作成します。
- Grafana Viewer、Grafana Editor、Grafana Admin など、Azure Managed Grafana のロールが割り当てられているユーザー、サービス プリンシパル、またはマネージド ID。ロールを割り当てるには、ユーザーと ID のアクセス許可の管理を参照してください。
トークン取得方法を選択する
オプション 1: Azure CLI (対話型テスト)
次のコマンドを実行して、Azure Managed Grafana対象ユーザーのアクセス トークンを取得します。
az account get-access-token --resource https://dashboard.azure.com --query accessToken -o tsv
この記事で検証コマンドを実行する場合は、トークンをシェル変数に格納します。
TOKEN=$(az account get-access-token --resource https://dashboard.azure.com --query accessToken -o tsv)
オプション 2: コード (アプリケーションと自動化のシナリオ)
コード : https://dashboard.azure.com/.defaultでマネージド ID またはサービス プリンシパル認証を使用する場合は、このスコープのトークンを要求します。
次のPython例に示すように、DefaultAzureCredentialを使用します。
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
token = credential.get_token("https://dashboard.azure.com/.default")
print(token.token)
API アクセスの検証
トークンを取得したら、簡単な呼び出しを実行して認証とアクセス許可を検証します。
<grafana-endpoint-URL> を実際のエンドポイント URL に置き換えます。
コード オプションを使用した場合は、 curlを実行する前に、トークン値からシェル変数を設定します。
TOKEN="<access-token>"
GRAFANA_ENDPOINT="<grafana-endpoint-URL>"
curl -i -H "Authorization: Bearer $TOKEN" "$GRAFANA_ENDPOINT/api/org"
予想される結果: 有効な JSON 本文を持つ HTTP 200 応答。 応答ヘッダーは、要求によって異なる場合があります。
同じAuthorization: Bearer ヘッダー パターンを使用して、他のAzure Managed Grafana データ プレーン API エンドポイントを呼び出します。
Troubleshoot
要求が 401 または承認エラーで失敗した場合:
- トークンの対象ユーザーが
https://dashboard.azure.comされていることを確認します。 - 呼び出し元に、Azure Managed Grafana リソースに対する Grafana ロールの割り当てがあることを確認します。
- ロールの割り当てが最近変更された場合は、数分待ってから再試行してください。
詳細については、「一般的なAzure Managed Grafanaの問題のトラブルシューティング」を参照してください。