今更聞けない!?Microsoft Graph で始める · SharePoint OneDrive Teams Planner Excel...

Preview:

Citation preview

今更聞けない!?Microsoft Graph で始める

Office 365 データ活用と事例の紹介

AD33

今更きけない!? Microsoft Graph で始める Office 365 データ活用と事例の紹介

AD 33

中村憲一郎 (kenakamu)

ソリューションアーキテクトhttps://qiita.com/kenakamu

趣味: MCP を取ること

好きな技術は主に、C#, UWP,

Xamarin, API, PowerShell, DB,

Node.js

https://github.com/kenakamu/

Microsoft Graph

本日の目標

ご説明すること

Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例

ご説明すること

Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例

Microsoft Graph

https://graph.microsoft.com

Microsoft Graph

全てのMicrosoft 365 のデータ

Office 365

Windows 10

EMS

全ての 1 つの

/me

なぜMicrosoft Graph?歴史的背景

多くのMicrosoft 製品

Exchange

SharePoint

Office

Active Directory

異なる 複数の

なぜMicrosoft Graph?歴史的背景

Office 365 Unified API (REST)

Azure AD 認証 (OAuth 2.0)

なぜMicrosoft Graph?歴史的背景

Microsoft Graph

Microsoft Graph

全てのMicrosoft 365 のデータ

Office 365

Windows 10

EMS

全ての 1 つの

Microsoft Graph

Microsoft Graph

Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例

Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例API 紹介

Tips

Microsoft Graph における認証

Azure AD

アプリケーションはAzure AD に登録

OAuth 2.0

アクセストークンベースの認可

OpenID Connect

認証情報の利用

アクセス許可の種類

委任されたアクセス

ユーザーが明示的にアプリに権限を委任

/me が利用可能

アプリケーションアクセス

管理者による事前同意でサービスとして実行

/me が利用不可能

Read や

ReadWrite 等の

操作

All, Shared 等の

操作の範囲制約

操作対象の

リソース

Microsoft Graph の権限

Microsoft Graph の権限

Azure AD の認証エンドポイント

v1.0 エンドポイント

対象: Azure AD/ADFS登録: portal.azure.com

SDK: ADAL

v2.0 エンドポイント

対象: Azure AD/B2C/MSA登録: apps.dev.microsoft.com

SDK: MSAL

アプリの種類

シナリオ

同意実行者

実際の権限

委任の権限 アプリケーション権限

モバイル、Web、SPA バックグランドサービス

ユーザー権限は

ユーザーが同意

管理者権限は

管理者が同意管理者のみが同意可能

アプリに付与

された権限

全て

サービスとして委任でユーザーの代理として

実際

権限

アプリに付与

された権限ユーザーの

権限

デモ : アプリケーションの登録

デモ : MSAL を利用したアプリ

Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例認証

API 紹介

Tips

Microsoft Graph を使った開発

試す

Microsoft Graph エクスプローラー、クイックスタート

学ぶ

ドキュメントとAPI レファレンス

開発する

SDK、サンプル、ツールOpen API 定義

Microsoft Graph

ユーザー, グループ、組織

Outlook

SharePoint

OneDrive

Teams

Planner

Excel

OneNote

Activities

デバイスリレー

コマンド

通知

Azure AD

Intune

Identity Manager

Advanced Threat

Analytics

Advanced Threat

Protection

メール, 予定, 連絡先

サイト、リスト

ドライブ、ファイル

チャネル, メッセージ

プラン、タスク

スプレッドシート、グラフ

ノート、ページ

ID 管理

アクセス制御

同期

ドメイン

管理ユニット

アプリケーションとデバイス

ATA/ATP

アラート

ポリシー

Office 365 Windows 10 EMS

Microsoft Graph

ブラウザですぐ試せる 利用できるアカウント:

サンプル組織アカウントマイクロソフトアカウント

オープンソース

デモ : Graph エクスプローラー

Microsoft Graph操作 HTTP メソッド 説明 例

一覧表示 GET アイテム一覧の取得 GET /users

取得 GET 特定アイテムの取得 GET /users/{id}

作成 POST/PUT 新規アイテムの作成 POST /users/

PUT /me/activities/{id}

更新 PATCH/PUT アイテムの更新 PATCH /users/{id}

PUT /me/activities/{id}

削除 DELETE アイテムの削除 DELETE /users/{id}

実行 POST 操作の実行 POST /domains/{id}/verify

バッチ POST 複数要求の実行 POST /$batch

Microsoft Graph

クエリ 説明 例

$filter 行のフィルター /users?$filter=startsWith(givenName,’J’)

$select 列のフィルター /users?$select=givenName,surname

$orderBy 結果の並べ替え /users?$orderBy=displayName desc

$top ページサイズの設定 /users?$top=10

$expand 関連リソースの取得 /groups?$expand=members

$count 条件にあうレコード数を取得 /me/messages?$top=2&count=true

$search メールと人物に対して検索 /me/messages?$search=pizza

Microsoft Graph API

1. ユーザーのプロファイル写真

要求

/photo/$value

応答

HTTP/1.1 200 OK

2. OneDrive ファイルのサムネイル要求

thumbnails

応答

HTTP/1.1 200 OK

3. Microsoft Teams ライフサイクル

4. Activities APIs と Windows タイムライン

要求

myAppActivityId

{

"appActivityId": "myAppActivityId",

"appDisplayName": "MyApp",

"activationUrl": "[protocol]://uri/",

"visualElements": {..}

"historyItems":[..]

}

5. Excel のグラフ画像要求

image

応答

HTTP/1.1 200 OK

デモ : Excel のグラフ画像

6. Microsoft Graphの拡張

オープン拡張

型が無いデータを簡単に格納

スキーマ拡張

型を持ったデータを格納。フィルターが行え共有しやすい

7. レポート要求

getOneDriveUsageFileCounts(period='D7’)

応答

8. インテリジェント機能

人の関連

メールや会話の頻度から、組織構造を超えた関連を取得

ドキュメントのトレンド

自分に関係があり、多くの人が見ているドキュメントの抽出

最近使った、または共有されたドキュメント

重度の高いドキュメントの抽出

Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例認証

API 紹介

Tips

TIP 1 | POST/PATCH/PUT

結果が必要ない場合は応答を省略

不要なデータを削減してパフォーマンス向上

Tip

Prefer return=minimal

要求ヘッダーの指定

TIP 2 | 取得列の最適化

必要なプロパティのみ指定

不要なデータを削減してパフォーマンス向上

Tip

$select の利用

GET ?

$select=givenName,mail

TIP 3 | 取得行の最適化

必要なレコードのみ取得

不要なデータを削減してパフォーマンス向上

Tip

$filter の利用

GET ?

$filter=department eq ‘Sales’&

$select=givenName,mail

TIP 4 |

サーバー側で

返すレコード数

上限あり

コレクション取得で

ページングの可能性

常にあり

Tip

@odata.nextLink を

常に確認

1.常にページングされ

ている前提をもつ

2.@odata.nextLink

リンクで次のページを

取得

3.@odata.nextLink が

無くなった時点で全レ

コードの取得完了

4.@odata.nextLink

リンクは変更せず使

TIP 5 | Webhooks + 差分クエリ

ポーリング以上に

最適化された

変更の追跡

最適なポーリング

間隔を

決めることが困難

Tip

Webhook をトリガー

差分クエリで

データを取得

@odata.nextLink

ページング中次ページのリンク

@odata.deltaLink

レコードは取得済差分クエリのリンク

TIP 6 | Microsoft Graph

PowerApps

Office 用の

テンプレート

Microsoft Flow

Office トリガーと

Office コネクター

Azure Functions

Microsoft Graph

バインディング

Microsoft Graph の概念Microsoft Graph の使い方Microsoft Graph の事例

事例 1 |

シナリオ

入社、異動、退社などの人の動きや、複数場所に散在するプロファイルの一元化

処理

各種プロパティの設定ライセンスの付与グループへの追加情報の共有初期タスクの追加ネットワークの共有、等

実装

Microsoft FlowAzure FunctionPowerShell、等

事例 2 |

シナリオ

顧客管理システムや、他社内システムとMicrosoft Teams の連携

処理

チームの作成プロパティの設定所有者とメンバーの管理チームの削除

実装

Microsoft FlowAzure FunctionBot FrameworkPowerShell、等

事例 3 |

シナリオ

OneDrive、SharePoint など複数個所に散在するドキュメントの資産化

処理

ファイルのコピー/移動PDF へ変換共有の開始/停止

実装

Webhook/差分クエリMicrosoft FlowAzure Function

事例 4 |

シナリオ

会議の開催から、会議中の議事録、および会議後の情報共有

処理

参加者空き時間会議室の予約議事録の保存や共有タスクの割り当て

実装

PowerAppsカスタムアプリ

事例 5 |

シナリオ

客先訪問など、移動を含んだ予定が複数ある場合の最適化

処理

予定の取得移動情報の取得予定の更新前後予定の作成

実装

Webhook/差分クエリMicrosoft FlowBot FrameworkAzure Function

共通 |ベストプラクティス

トリガー

手動イベント発生時タイマー

処理

データの取得データの追加他サービス連携データをよりリッチに

実装

ユーザー操作アプリの場所サービス

まとめ

ご説明したこと

Microsoft Graph

本日の目標

Microsoft Graph

Microsoft Graph 今後の予定

新機能

クライアント通知Teams 各種機能Security API

ベータから正式に

各種ベータは正式に

情報

TwitterStack OverflowBlogビデオ

https://graph.microsoft.com

Twitter

#MicrosoftGraph

GitHub

/MicrosoftGraph

StackOverflow

[MicrosoftGraph]

© 2018 Microsoft Corporation. All rights reserved.

本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

Recommended