Power BI REST API 呼び出しでの 401 エラーのトラブルシューティング
さらに調査するには、Fiddler キャプチャが必要な場合があります。 Microsoft Entra IDに登録されているアプリケーションに、必要なアクセス許可スコープがない可能性があります。 Azure ポータルのMicrosoft Entra IDのアプリ登録に必要なスコープが存在することを確認します。
管理者 API を呼び出すと、サービス プリンシパルから 401 が返される
サービス プリンシパルが管理者 REST API Power BI呼び出すと、サービス プリンシパルが正常に認証され、トークンを取得した場合でも、呼び出しは HTTP 401 Unauthorized を返す可能性があります。 この問題は、次のような直接 REST API 呼び出しと PowerShell コマンドレットの両方に影響します。
-
アクティビティ イベントの取得 (
GET /admin/activityevents) -
グループを管理者として取得 する (
GET /admin/groups) -
/admin/配下のその他のエンドポイント - 管理者ルートに対する
Get-PowerBIWorkspace -Scope Organization、Get-PowerBIActivityEvent、Invoke-PowerBIRestMethodなどの PowerShell コマンドレット
一般的な PowerShell エラーは次のようになります。
Get-PowerBIWorkspace : Operation returned an invalid status code Unauthorized
このシナリオの 401 応答は、通常、認証エラーではなく、テナントまたはアプリの登録構成のギャップを示します。 次のチェックを順番に実行します。
- 関連するテナント設定が有効になっていることを確認します。 Microsoft Fabric 管理ポータルで、管理者 API については サービス プリンシパルに読み取り専用の Power BI 管理者 API の使用を許可する が有効になっていること、またはユーザー API については サービス プリンシパルに Power BI API の使用を許可する が有効になっていることを確認します。 これら 2 つの設定は、個別のテナント設定です。 ユーザー API 設定のみを有効にした場合、管理者 API 呼び出しは 401 で失敗します。 詳細については、「 管理者 API のサービス プリンシパル認証を有効にする」を参照してください。
- サービス プリンシパルがスコープ付きセキュリティ グループに含まれているかどうかを確認します。 各テナント設定は、1 つ以上のMicrosoft Entraセキュリティ グループに適用されます。 サービス プリンシパルが、設定が参照するセキュリティ グループのメンバーであることを確認します。 詳細については、「Microsoft Entra アプリケーションの登録」を参照してください。
- OAuth トークンで正しいリソースが使用されたことを確認します。 アクセス トークンを要求するときは、リソース (対象ユーザー) の値がグローバル クラウドに対して
https://analysis.windows.net/powerbi/apiされている必要があります。 Power BIは、401 を使用して別のリソース (Microsoft Graph など) に対して発行されたトークンを拒否します。 - アプリ登録のアクセス許可を確認します。 アプリの登録に、特定の管理者 API に必要なアプリケーションのアクセス許可があり、Microsoft Entra管理者が管理者の同意を付与したことを確認します。 委任されたアクセス許可とアプリケーションのアクセス許可を同じアプリ登録に混在させないでください。認証フローに基づいていずれかを使用します。
- アクティビティ イベントのパラメーターを検証します。
アクティビティ イベントの取得 REST API を呼び出す場合、
startDateTimeパラメーターとendDateTimeパラメーターは ISO 8601 UTC 形式である必要があります (たとえば、2026-06-30T00:00:00Z)。 タイムスタンプの形式が正しく設定されていないと、401 エラーが発生する可能性があります。
Power BI REST API 呼び出しでの 403 エラーのトラブルシューティング
403 エラーは、次のいずれかの理由で発生する可能性があります。 さらに調査するために、Fiddler のキャプチャが必要になる場合があります。
- 共有容量で生成できる埋め込みトークンの量を超えました。 埋め込みトークンを生成するには、Azure容量を購入し、その容量にワークスペースを割り当てます。 Azure ポータルの「Power BI Embedded容量の作成」を参照してください。
- Microsoft Entra承認トークンの有効期限が切れています。
- 認証されたユーザーは、グループ (ワークスペース) のメンバーではありません。
- 認証されたユーザーは、グループ (ワークスペース) の管理者ではありません。
- 認証されたユーザーにアクセス許可がありません。 refreshUserPermissions API を使用してアクセス許可を更新します。
- 承認ヘッダーが正しく表示されない可能性があります。 入力ミスがないことを確認します。
アプリケーションのバックエンドでは、 GenerateTokenを呼び出す前に、承認トークンの更新が必要になる場合があります。 詳細については、「アクセス トークンを更新する」を参照してください。
GET https://wabi-us-north-central-redirect.analysis.windows.net/metadata/cluster HTTP/1.1
Host: wabi-us-north-central-redirect.analysis.windows.net
...
Authorization: Bearer eyJ0eXAiOi...
...
HTTP/1.1 403 Forbidden
...
{"error":{"code":"TokenExpired","message":"Access token has expired, resubmit with a new access token"}}
インポート API とエクスポート API を使用するときのタイムアウト例外を修正する
Power BI REST API 要求を送信すると、テナントのデータを含まないクラスターに到着する可能性があります。 その場合、タイムアウトが原因で要求のリダイレクトが失敗する可能性があります。
タイムアウト例外を修正するには、 preferClientRouting URL クエリ パラメーターを true に設定して要求を再送信します。 要求が間違ったクラスターに到着した場合、Power BI サービスは 307 一時リダイレクト HTTP 応答を返します。 このような場合は、応答 HTTPS Location ヘッダーで指定された新しいアドレスに要求をリダイレクトする必要があります。
数分後に更新パラメーターまたは更新データ ソース API が失敗する
応答ヘッダーには、次の一般的なエラーが返されることがあります。
HTTP/1.1 500 Internal Server Error
An error has occurred
[データセット ] - [グループ内のパラメーターの更新] または [データセット] - [グループ API 内のデータソースの更新] を使用する場合、このエラーは、大きなデータセット形式を使用していない大規模なデータセットを更新していることを示している可能性があります。 大きなデータセット形式を使用して、エラーを回避します。
関連するコンテンツ
Power BI Embedded についてよく寄せられる質問
他の質問はありますか? Power BI コミュニティに質問する