Power Query での Microsoft Graph のサポートの不足

Power Query から Microsoft Graph REST API への接続は推奨されておらず、サポートされていません。 代わりに、Microsoft Graph データ接続など、Graph に基づいて分析データを取得するための代替ソリューションを利用することをお勧めしています。

Microsoft Graph API エンドポイントへの特定の REST 呼び出しを Web.Contents または OData.Feed 関数を使用して実行することができる場合がありますが、これらの方法は長期的なソリューションとしては信頼できるものではありません。

この記事では、Power Query からの Microsoft Graph 接続に関する問題の概要と、それが推奨されない理由について説明します。

認証

Power Query の Web.Contents および OData.Feed 関数に対する組み込みの組織アカウント認証フローは、ほとんどの Graph エンドポイントと互換性がありません。 具体的には、Power Query の Microsoft Entra ID クライアントは user_impersonation スコープを要求しますが、これは Graph のセキュリティ モデルと互換性がありません。 Graph は、汎用的な Web および OData コネクタでは利用できない豊富なアクセス許可のセットを使用します。

独自の Microsoft Entra ID 資格情報の取得フローをクエリから直接実装したり、ハードコーディングまたは埋め込みの資格情報を使用したりすることも、セキュリティ上の理由から推奨されていません。

OData ライブラリの非互換性

Graph と Power Query が 2 つの異なるバージョンの OData ライブラリを使用している可能性があるため、特定の Graph エンドポイントと Graph の拡張機能では、Power Query の組み込み OData.Feed 関数でサポートされていない OData ライブラリと機能の使用が必要になる場合があります。 これらの問題により、通常、サービスの $metadata ドキュメントの取得中にエラーが発生します。 サポートされている最新の OData ライブラリが使用されるようにするために、 Implementation = "2.0" 関数呼び出しにオプションを渡す OData.Feed ことに関する一般的なガイダンスが見つかることがあります。 この方法では特定の OData の非互換性が解決されますが、Graph と Power Query は異なるタイミングで新しいバージョンの OData ライブラリを採用するため、時間の経過と共にエラーが発生する可能性があります。

パフォーマンス

Microsoft Graph API は、多くのアプリケーション シナリオをサポートするように設計されていますが、ほとんどの分析シナリオで必要とされる大規模なデータ取得では最適ではありません。 Graph API から大量のデータを取得しようとすると、パフォーマンスの問題が発生する可能性があります。 シナリオの適用性に関する詳細については、Graph のドキュメントを参照してください。

カスタム コネクタの使用

Power Query ユーザーによっては、カスタム コネクタを介して Graph 接続を有効化し、Graph API の特定の部分に機能を制限している場合があります。 コネクタ開発者はこの方法を使用して、Graph 固有のアクセス許可を持つ独自の Microsoft Entra ID クライアントを定義して、一般的な認証の問題を解決できます。 一部のカスタム コネクタでは、Web.Contents を使用して、コネクタ ロジック内で OData サポートをシミュレートすることによって、OData の問題に対処します。 ただし、前述のパフォーマンスとスケーラビリティの問題が頻繁に発生するため、この方法は推奨されていません。 この方法を採用する開発者は、これらの制限事項を考慮して作業を継続する必要があります。