Power Automate で Microsoft Graph reports API を利用する

Microsoft 365 管理センターで取得できるレポートは、Microsoft Graph reports API でも取得できます。そのため Microsoft Graph を使用してレポートの取得を自動化するようなことも可能です。ここでは Power Automate で Microsoft Graph reports API を利用するフローの作成方法を紹介します。取得したレポートはメールに添付して送信します。

基本的な Microsoft Graph reports API の試し方については Microsoft Graph reports API の試し方を参照してください。

なお厳密には Microsoft 365 管理センターのレポートは beta 版の Microsoft Graph reports API を使用することで取得できます。ただし本番環境で beta 版の Microsoft Graph を使用することはサポートされません。また、Microsoft 365 管理センターのどのレポートが Microsoft Graph reports API のどのレポートに対応しているのかについてまとまった情報は無いため、リファレンスを参照したり実際に取得したりして確認する必要があります。

Microsoft Graph reports API はレスポンスが 302 リダイレクトになっています。そのため Power Automate の HTTP コネクタでリクエストを送信すると 302 リダイレクトを処理しないためコネクタの実行は失敗します。これに対処するために、もう 1 つ後続の HTTP コネクタを作成して前段の HTTP コネクタが失敗したときに実行されるように構成し、Location ヘッダーの値を取得してリクエストを送信しなおすようにしています。

前提条件

Power Automate の HTTP コネクタを使用します。そのため、無償版ではなく有償の Power Automate のライセンスが必要です。

アクセス トークンの取得で Microsoft Graph のアプリケーションの許可を使用するため、Office 365 の管理者アカウントが必要です。

手順

  1. Azure Portal に Office 365 の管理者でサインインします。
  2. [Active Directory] – [アプリの登録] – [新規登録] をクリックします。
  3. [名前] に任意のアプリの名前を入力します。(例 : App01)
  4. [サポートされているアカウントの種類] から [この組織のディレクトリ内のアカウントのみ] を選択します。
  5. [リダイレクト URI] で [Web] を選択し、任意の URI を入力します。(例 : https://localhost/App01)
  6. [登録] をクリックします。
  7. 表示された [アプリケーション (クライアント) ID] の値を控えておきます。
  8. [管理] – [証明書とシークレット] をクリックします。
  9. [新しいクライアント シークレット] をクリックします。
  10. [説明] に任意の説明を入力します。(例 : Key1)
  11. [有効期限] から任意の有効期限を選択します。(例 : なし)
  12. [追加] をクリックします。
  13. 表示されたクライアント シークレットの値を控えておきます。
  14. [管理] – [API のアクセス許可] をクリックします。
  15. [アクセス許可の追加] をクリックします。
  16. [Microsoft Graph] をクリックします。
  17. [アプリケーションの許可] をクリックします。
  18. [Reports] – [Reports.Read.All] のチェックをオンにします。
  19. [アクセス許可の追加] をクリックします。
  20. [<テナント名> に管理者の同意を与えます] をクリックします。
  21. [はい] をクリックします。
  22. Power Automate にサインインします。
  23. [作成] をクリックします。
  24. [空白から開始] – [インスタント クラウド フロー] をクリックします。
  25. [フロー名] を適宜入力し、[このフローをトリガーする方法を選択します] から [手動でフローをトリガーします] を選択して [作成] をクリックします。
  26. [新しいステップ] をクリックします。
  27. [プレミアム] タブを表示して [コネクタとアクションを検索する] に「HTTP」と入力し、[アクション] から [HTTP] をクリックします。
  28. [詳細オプションを表示する] をクリックし、以下のように構成します。
    • 方法 : GET
    • URI : リクエストする Microsoft Graph reports API の URL
    • 認証 : Active Directory OAuth
    • テナント : アプリの登録を行ったテナントの onmicrosoft.com ドメイン名
    • 対象ユーザー : https://graph.microsoft.com
    • クライアント ID : 手順 7 で控えた値
    • 資格情報の種類 : シークレット
    • シークレット : 手順 13 で控えた値
  1. [新しいステップ] をクリックし、もう 1 つ HTTP コネクタを追加します。
  2. 追加した HTTP コネクタの [・・・] をクリックし、[実行条件の構成] をクリックします。
  3. [に失敗しました] のチェックのみを有効にして [完了] をクリックします。
  1. 追加した HTTP コネクタの [詳細オプションを表示する] をクリックし、以下のように構成します。
    • 方法 : GET
    • URI : [式] に「outputs(‘HTTP’).headers.Location」と入力して [OK] をクリック
    • 認証 : なし
  1. [新しいステップ] をクリックします。
  2. [標準] タブを表示して [Office 365 Outlook] をクリックし、[アクション] から [メールの送信 (V2)] をクリックします。
  3. [詳細オプションを表示する] をクリックし、以下のように構成します。
    • 宛先 : メールの宛先
    • 件名 : メールの件名
    • 本文 : メールの本文
    • 添付ファイル 名前 – 1 : 拡張子を csv にした任意のファイル名
    • 添付ファイル コンテンツ – 1 : [動的なコンテンツ] から [HTTP 2] の [本文] をクリック
  1. [保存] をクリックします。
  2. 左上の左向き矢印アイコン (前のページに戻る) をクリックします。
  3. [フローを開始する準備ができました] が表示された場合は [OK] をクリックします。
  4. [実行] をクリックします。
  5. Office 365 Outlook へのサインインが完了していない場合はサインインします。
  6. [続行] をクリックします。
  7. [フローの実行] をクリックします。
  8. [完了] をクリックします。
  9. 実行が完了し、レポートの添付されたメールが送信されていることを確認します。