管理画面があることと、棚卸しできることは違う。
Microsoft 365には多くの管理画面とレポートがあります。しかし、誰を確認すべきか、どのグループにオーナーがいないか、ゲストやライセンスをどう棚卸しするかは、管理者の知識に依存します。
現場では、必要な情報をPowerShellで取得し、Excelにして渡す業務が実際に発生していました。そこで、Microsoft Graphから定期収集し、Webで確認でき、必要なときはExcelとしてそのまま渡せる仕組みにしました。
7つの情報を、7つの日本語シートへ。
ユーザーとゲスト
内部ユーザーと外部ゲストを分け、アカウントの棚卸しに使える形で出力します。
グループとTeams
セキュリティグループ、Microsoft 365グループ、Teamsを確認できます。
SharePoint等
SharePoint、OneDrive、ライセンス情報を同じブックへまとめます。
データを出すだけで終わらせない。
APIのJSONをそのまま表にしただけでは、読む人の作業が増えます。Excelには次の整形を自動で入れています。
- ユーザー、ゲスト、グループ、Teams、SharePoint、OneDrive、ライセンスの日本語シート名
- 太字・青背景・白文字のヘッダー
- オートフィルターと先頭行の固定
- 内容に合わせた列幅の自動調整
- 利用者には不要な
@odata.*メタデータの除外
2026年4月の改善では、このExcel生成部分をTDDで作り、16テストを通したうえでFunctionsとWebへデプロイしました。
受け取る人がExcelで確認・共有するなら、そこまで自動化して初めて業務が短くなります。
便利さより先に、テナント境界を守る。
M365のユーザー、グループ、権限情報は、組織の構造そのものです。別の顧客のデータが見えたり、誤って出力されたりする事故は許されません。
そのため、テナントごとに実行環境とStorageを分け、トークンのtenant IDと実行先を照合し、許可されたユーザーIDだけを通すfail-closedの認可へ変更しました。
日次収集とExcel出力は稼働済みですが、外部顧客向けの無支援オンボーディングと課金は検証段階です。完成済みSaaSの導入実績としては扱いません。
記録は2026年7月28日更新。自動収集の7日連続成功と3.6〜5.0秒は、2026年4月18〜24日のApplication Insights実測値です。
