はじめに
Microsoft 365やAzureの管理の自動化は、運用コストを低減するために必須で検討しないといけない課題です。今回は、その中でも特にMicrosoft 365の管理を自動化するための技術の1つとして、Microsoft Graphの概要と簡単な使い方を紹介します。
Microsoft Graph 概要
Microsoft Graphとは
Microsoft Graphとは、Microsoft 365やAzure ADのデータにアクセスすることができるエンドポイントのことです。ユーザーやグループ、メール、Teamsなど多岐にわたるデータにアクセスすることができます。
引用元:Microsoft Graph の概要 - Microsoft Graph | Microsoft Learn
Micorost Graphのコンポーネント
Micorost Graphには3つのコンポーネントが用意されています。
- Microsoft Graph API
- 単一のエンドポイントが提供されており、REST APIまたhSDKを使用して、単一のユーザーまたはテナント全体のデータにアクセスすることが可能。
- Microsoft Graph コネクタ
- 外部向けのサービスからデータを受信する際に用いられる。
- Microsoft Graph Data Connect
- 大量データを取り扱う際に用いられる。Microsoft Graph APIと異なり、キャッシュデータを取り扱う。
引用元:Microsoft Graph の概要 - Microsoft Graph | Microsoft Learn
Microsoft Graph で取り扱えるサービスやデータセット
- Microsoft 365 コア サービス
- Bookings、カレンダー、Delve、Excel、Microsoft 365 コンプライアンス eDiscovery、Microsoft Search、OneDrive、OneNote、Outlook / Exchange、People (Outlook 連絡先)、Planner、SharePoint、Teams、To Do、Workplace Analytics
- Enterprise Mobility + セキュリティ サービス
- Advanced Threat Analytics、Advanced Threat Protection、Azure Active Directory、Identity Manager、および Intune
- Windows サービス
- アクティビティ、デバイス、通知、ユニバーサル印刷 (プレビュー)
- Dynamics 365 Business Central サービス
引用元:Microsoft Graph の概要 - Microsoft Graph | Microsoft Learn
Microsoft Graph Explorer
Micorost Graph Explorerは、Microsoftが提供しているMicorost Graph APIを試せるサイトです。初期アクセス時はMicrosoftが用意している既定のテナントにサインインしている状態で、そのサイトのデータにアクセスすることが可能です。
自由にAPIを実行することが可能な上に、サンプルクエリも掲載されているので、初めてMicrosoft Graphを触る人には、操作のイメージがしやすいサイトとなります。
Graph エクスプローラー - Microsoft Graph
別のテナントにサインインすることも可能で、自身のテナントにサインインすれば、自身のテナントのデータにもアクセスすることが可能です。
※データの作成や削除も可能なので、操作する際は細心の注意を払ってください。過去に自身のメールを誤ってすべて削除してしまった人もいるようです。
Microsoft Graph PowerShell SDK
概要
Microsoft Graph PowerShell SDK は、Microsoft Graph APIのAPIラッパーとして機能し、PowerShellで使用するためのAPIセットが公開されたSDKとなります。
Microsoft Graph PowerShellのコマンドは、Microsoft Graph APIスキーマから自動生成されるため、より迅速なアップデートや機能追加が容易になります。
Azure AD PowerShellおよびMSOnlineモジュールの代替として、本SDKは推奨されています。
機能とメリット
Microsoft Graph PowerShell SDKは、以下のメリットを提供しています
- すべてのMicrosoft Graph APIにアクセス可能
- AzureADをはじめ、SharePoint、Exchangeなどの他のMicrosoft サービスのAPIが含まれており、すべての単一のエンドポイントから単一のアクセストークンでアクセス可能です。
- PowerShell 7のサポート
- PowerShell 7以降で動作します。また、Windows PowerShell 5.1との互換性もあります。
- クロスプラットフォームのサポート
- Windows、macOS、Linuxを含むすべてのプラットフォームで動作します。
- 最新の認証に対応
- Microsoft Authentication Library(MSAL)をサポートしています。
- 外部IDのサポート
- 他のAzure ADテナントのユーザーは、Microsoft Graph PowerShellを使用してテナント内のサービスを認証することができます。
- 最小限の特権
- 権限は事前に承認されていないため、ユーザーは必要に応じてアプリの権限を1回だけ要求する必要があります。
- 高度なクエリ
- リッチで高度なクエリをサポートしています。
- オープンソース
- 機能チームとコミュニティは、優れたPowerShellエクスペリエンスを作成し、共有することができます。
- 定期的なアップデート
- 最新のMicrosoft Graph APIアップデートをサポートするために定期的に更新されます。
Microsoft Graph PowerShellのインストール
Microsoft Graph PowerShellをインストールすための要件は下記の通りです。
- PowerShell 5.1 以降にアップグレードする
- .Net Framework 4.7.2 以降をインストールする
- PowerShellを更新して、最新バージョンを取得する
- PowerShellスクリプトの実行ポリシーをRemoteSignedに設定する
次のコマンドを実行して、SDKをインストールします。
Install-Module Microsoft.Graph -Scope CurrentUser
インストールのスコープを変更することも可能です。下記の場合は管理者権限が必要となります。
Install-Module Microsoft.Graph -Scope AllUsers
コマンド実行時、NuGetプロバイダーがインストールされていない場合は、インストールの確認が表示されるので、"Y"と入力して実行してください。
信頼されていないリポジトリからのインストールの確認も表示されるので、こちらは"A"と入力して実行してください。
インストールが完了したら、下記のコマンドでインストールされているバージョンを確認できます。
Get-InstalledModule Microsoft.Graph
バージョンが古い場合は、下記のコマンドで更新できます。
Update-Module Microsoft.Graph
Microsoft Graph PowerShellを使用する
次のコマンドでMicrosoft Graphにサインインしてください。
スコープには、実行するコマンドに必要なアクセス許可を指定する必要があります。
今回は、ユーザー情報を取得するのみのため、"User.Read.All"を指定しました。
Connect-MgGraph -Scopes "User.Read.All"
コマンドを実行するとサインインダイアログが表示されるので、管理者アカウントでテナントにログインします。
スコープにしたアクセス許可が管理者の同意が必要だったので、承認ダイアログが表示されます。"組織の代理として同意する"にチェックを付けて、承諾ボタンを押下してください。
次に下記のコマンドを実行して、全ユーザーを取得してください。
Get-MgUser
テナントに所属しているユーザーが一覧表示されます。
Filterパラメーターを使うことで特定のユーザーを検索することも可能です。
Get-MgUser -Filter "displayName eq '00001'"
以下のコマンドでMicrosoft Graphからサインアウトできます。
Disconnect-MgGraph
まとめ
Microsoft Graphにサインインして、操作することが簡単できました。
まずはMicrosoft Graphを触ってみて、簡単に操作できるイメージを掴んでみましょう。
次回はMicrosoft Graphが用意している認証周りの説明をしたいと思います。