1. 07JP27

    Posted

    07JP27
Changes in title
+Microsoft Teamsのために作成されたO365グループを取得する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,70 @@
+#はじめに
+Microsoftが~~Slackのパクリで~~リリースしたTeamsはユーザー管理の基盤として0ffice365(O365)のグループを作成します。
+つまり1チームにつき1つのO365グループが作成されます。0365のグループはTeams以外でも使用されますし、しかもチームはデフォルト設定でテナントユーザーであれば誰でも作りたい放題なので、情報システム部門はテナント内の0365グループを把握するのは一苦労です。
+というわけでテナント内の0365グループからTeamsのために作成された0365のグループを取得してみます。
+
+#取得の仕方
+取得には[Microsoft Graph API](https://developer.microsoft.com/en-us/graph/docs/concepts/overview)を使用します。
+[Graph Explorer](https://developer.microsoft.com/ja-jp/graph/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