Edited at

Microsoft Teamsのために作成されたO365グループを取得する


はじめに

MicrosoftがリリースしたTeamsはユーザー管理の基盤としてOffice365(O365)のグループを作成します。

つまり1チームにつき1つのO365グループが作成されます。O365のグループはTeams以外でも使用されますし、しかもチームはデフォルト設定でテナントユーザーであれば誰でも作りたい放題なので、情報システム部門はテナント内のO365グループを把握するのは一苦労です。

というわけでテナント内のO365グループからTeamsのために作成されたO365のグループを取得してみます。


取得の仕方

取得にはMicrosoft Graph APIを使用します。

Graph Explorerにアクセスして以下のAPIエンドポイントのURLをGETメソッドで呼び出します。

https://graph.microsoft.com/v1.0/groups

すると以下のようなJSONファイルが取得されます。

Graph Explorerではログインをしないとダミーデータが表示されます実際のご自身のテナントの情報を取得したい場合は画面左からテナントのアカウントで認証を行ってください。)


Groups.json

{

"@odata.context": "https://graph.microsoft.com/beta/$metadata#groups",
"value": [
{
"id": "02bd9fd6-8f93-4758-87c3-1fb73740a315",
"description": "Welcome to the HR Taskforce team.",
"displayName": "HR Taskforce",
"groupTypes": [
"Unified"
],
"mailEnabled": true,
"mailNickname": "HRTaskforce",
"resourceBehaviorOptions": [],
"resourceProvisioningOptions": [
"Team"
],
"securityEnabled": false,
"visibility": "Private",
},
{
"id": "8090c93e-ba7c-433e-9f39-08c7ba07c0b3",
"description": "Welcome to the team that we've assembled to launch our product.",
"displayName": "X1050 Launch Team",
"groupTypes": [
"Unified"
],
"mailEnabled": true,
"mailNickname": "X1050LaunchTeam",
"resourceBehaviorOptions": [],
"resourceProvisioningOptions": [],
"securityEnabled": false,
"visibility": "Private",
}
...
]
}

このJSONはグループ情報の配列になっています。

そして各グループのresourceProvisioningOptionsというプロパティに"Team"という値が入っていればそのグループはTeamsのために作成されたグループであるということを表しています。


ODataクエリ

Microsoft Graph APIはODataに対応しており、以下のURLでアクセスするとresourceProvisioningOptions"Team"が含まれるグループ、つまりTeamsのために作成されたグループ情報のみが取得できます。

https://graph.microsoft.com/beta/groups/groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team')

注.このODataクエリはv1.0エンドポイントでは対応していないため、bataを使用する必要があります。


参考

https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/team_list_all_teams