情シスよ、Azure Logic Appsをさわるんだ！

# はじめに

**M365を管理している情シスへ捧げます。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/9b1dd435-16b1-4f6a-1430-62243e3c2407.png)
DALL-E作成

# 姉妹記事

https://qiita.com/akihiro_suto/items/33e8791570e063e35683

# 毎日大変だよな

M365の管理作業って大変なことばかり。

- Entra IDでのユーザー作成、グループ作成
- グループ作ったと思ったらそのメンテナンスがついて回る
- Exchange Onlineで配布グループ作成依頼もくるでしょう
- 共有メールボックスもつくりたいって？
- 業務に関わる受信メールが迷惑メール認定されるからなんとかしろ
- こっちから送信したメールも迷惑メール認定されているっぽいからなんとかして
- 変なファイルクリックしちゃった

などなど、書き始めるととまらない。

# 少しでも楽したいよな

だったら**Azure Logic Apps**さわれ。

そして、**Graph API**たたけ。

# Azure Logic AppsとPower Automate

Azure Logic Appsのドキュメント置いておく。**怖がらなくて大丈夫。** ほとんどPower Automate。

編集画面はこんな感じ。Power Automateだよな。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/67af5380-bd18-d7ea-b37f-5b942f1d4a6f.png)

https://learn.microsoft.com/ja-jp/azure/logic-apps/logic-apps-overview

それもそのはず。以下のドキュメントにも書いてある。**Power AutomateはLogic Apps上に構築** されている。

>**Power Automate は、Azure Logic Apps プラットフォーム上に構築されています。** どちらも同様のワークフロー デザイナーとコネクタを提供します。

https://learn.microsoft.com/ja-jp/azure/azure-functions/functions-compare-logic-apps-ms-flow-webjobs#compare-microsoft-power-automate-and-azure-logic-apps

比較表はこちら。

| | Power Automate | Logic Apps |
| --- | --- | --- |
| **ユーザー** | オフィスの従業員、ビジネス ユーザー、SharePoint 管理者 | インテグレーター、開発者、IT プロフェッショナル |
| **シナリオ** | セルフ サービス | 高度な統合 |
| **デザイン ツール** | ブラウザー上とモバイル アプリ、UI のみ | コード ビューを利用できるブラウザー上、Visual Studio Code、Visual Studio |
| **アプリケーション ライフサイクル管理 (ALM)** | Power Platform には、DevOps および GitHub Actions と連携して、ALM サイクルで自動化されたパイプラインを構築できるツールが用意されています。 | Azure DevOps: Azure Resource Manager におけるソース管理、テスト、サポート、自動化、管理 |
| **管理者向けエクスペリエンス** | Microsoft Power Automate 環境とデータ損失防止 (DLP) ポリシーの管理、ライセンスの追跡: 管理センター | リソース グループ、接続、アクセス管理、およびログ記録の管理: Azure Portal |
| **セキュリティ** | Microsoft 365 セキュリティ監査ログ、DLP、機密データの保存時の暗号化 | Azure によるセキュリティ保証: Azure セキュリティ、Microsoft Defender for Cloud、監査ログ |

# 課金形態が違う、プレミアムコネクタが使える

Azure Logic Appsは、基本、従量課金モデル。使った分だけお金がかかる。

https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/

**Power Automateでいうプレミアムコネクタも使える。** つまりGraph APIをたたくために必要なHTTPコネクタも最初から使える。

Power Automateは使うユーザーごとにライセンスが必要だが、Logic Appsはシンプルに従量課金で、Azureのエコシステムの中でリソースをたてて動かすので、複数人が一つのフローをメンテナンスしようと、動いた分だけの課金がかかるだけ。管理者のライセンスを購入とかしなくてもOK。

https://www.microsoft.com/cms/api/am/binary/RWFNaj

# Graph APIをたたけ

https://learn.microsoft.com/ja-jp/graph/api/overview?view=graph-rest-1.0

Graph APIはMicrosoftの各種機能の裏側で動いているAPI。つまりこれをたたくことができれば、管理作業においてUI上でポチポチ行っている作業をLogic Appsで行うことができる。

## ユーザー中心のユース ケース

ドキュメントから引用。Graph APIを利用したユースケース。
以下の作業がすべてGraph APIをたたけばできますよってこと。

- ユーザー (Lisa) のプロファイルを取得し、写真を取得します
- リサのマネージャーと彼女の直属のレポートの ID に関するプロファイル情報を取得します。すべてMicrosoft Entra ID に格納されています
- OneDrive for Business 上で、Lisa のファイルにアクセスし、最後にそのファイルを更新したユーザーを特定し、その人のプロファイルに移動します
- Exchange Online 上の Lisa の予定表にアクセスし、向こう 2 週間で Lisa が彼女のチームとの会議に最適な時間を決定します
- Lisa の予定表を購読し、変更履歴を記録し、Lisa が会議に自分の時間の 80% 以上を費やしている場合に報告します
- Lisa が外出中のときに自動応答を設定します
- コミュニケーション、コラボレーション、ビジネスのリレーションシップに基づいて、Lisa にもっとも関連のある人物を取得します
- Lisa の OneDrive for Business 上の Excel ファイルの、グラフから、最新の販売計画を取得します
- Planner で Lisa に割り当てられているタスクを検索します。

## Microsoft 365 グループのユース ケース

ドキュメントから引用。Graph APIを利用したユースケース。
以下の作業がすべてGraph APIをたたけばできますよってこと。

- 組織内の Microsoft 365 グループに関するレポートを実行し、グループのメンバー間の通信がもっとも多いグループを特定します
- この Microsoft 365 グループの計画を検索し、その計画のタスクの割り当てを検索します
- Microsoft 365 グループ内で新しい会話を開始し、メンバーがワークロードを共有するために別のグループを作成するかどうかを決定します
- グループの既定のノートブックを取得し、調査の結果を記録する新しいページを作成します

## たたきかた

Azure側でいろいろ設定が必要だけど、手順は以下リンクにまとめてくれてる。

https://jpazinteg.github.io/blog/LogicApps/Integration-graphApi/

練習は**Graph エクスプローラーでしろ**。どんなデータがとれるかもわかる。

https://developer.microsoft.com/en-us/graph/graph-explorer/

使い方はここ読め。

https://learn.microsoft.com/ja-jp/graph/graph-explorer/graph-explorer-overview

Sample Queryもあるから、いろいろいじってみろ。

Entra IDからユーザー一覧を出力するのも簡単だよな。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/1fc826b6-e41a-de17-f806-195d712a480f.png)

# あとはアイデア次第。

あとはアイデア次第。Microsoft 365 関連はほぼ操作できる。それも、一度設定したら、自動的に動き続けてくれる。

自分たちの課題で、解消できそうなものあるよな？

- Intuneからデバイスの一覧を出して準拠していないものをSharePointリストに吐き出したい
- ユーザー一覧を吐き出して毎日CSVに吐き出したい
- ゲストユーザーで90日間ログインしていない人を抽出したい

すべてLogic Appsでできるから、管理業務を楽に回していこうな。

そして、楽になったらそのフローをぜひシェアしていこうな！

# Azure Open AI もからめると、無限

HTTPリクエストができるから、当然Azure Open AIにポストすることも可能。

取得したデータをもとに、Open AIに投げて加工したデータを受け取ることが簡単にできる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/a7ab180c-0a53-fd18-f7d6-a7263633bcdb.png)

# 終わりに

情シスに異動して、さわっていてよかったなと思ったものが、

- **Logic Apps**

と

- **Power BI**

でした。

単純作業や定期的な作業をLogic Appsに任せて、さらに別業務に時間と頭を割くことができます。Power Automateをふだんさわっているなら、ぜひLogic Appsも業務に取り入れて、Graph APIをたたいてみてください！

# 姉妹記事

https://qiita.com/akihiro_suto/items/33e8791570e063e35683