Microsoft Entra ID を使用して Azure Managed Grafana のデータ プレーン API に認証する

この記事では、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

トークン取得方法を選択する

オプション 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の問題のトラブルシューティング」を参照してください。