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 の Azure Active Directory (Azure AD) クライアントは user_impersonation スコープを要求しますが、これは Graph のセキュリティ モデルと互換性がありません。 Graph は、汎用的な Web および OData コネクタでは利用できない豊富なアクセス許可のセットを使用します。
独自の Azure AD 資格情報の取得フローをクエリから直接実装したり、ハードコーディングまたは埋め込みの資格情報を使用したりすることも、セキュリティ上の理由から推奨されていません。
OData ライブラリの非互換性
特定の Graph エンドポイントおよび Graph の拡張機能では、Power Query の組み込みの OData.Feed 関数でサポートされていない OData ライブラリと機能を使用することが必要になる場合があります。これは、Graph と Power Query が 2 つの異なるバージョンの 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 固有のアクセス許可を持つ独自の Azure AD クライアントを定義して、一般的な認証の問題を解決できます。 一部のカスタム コネクタでは、Web.Contents を使用して、コネクタ ロジック内で OData サポートをシミュレートすることによって、OData の問題に対処します。 ただし、前述のパフォーマンスとスケーラビリティの問題が頻繁に発生するため、この方法は推奨されていません。 この方法を採用する開発者は、これらの制限事項を考慮して作業を継続する必要があります。