狠狠撸

狠狠撸Share a Scribd company logo
今更きけない!? 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 Flow
Azure Function
PowerShell、等
事例 2 |
シナリオ
顧客管理システムや、
他社内システムと
Microsoft Teams の
連携
処理
チームの作成
プロパティの設定
所有者とメンバーの管
理
チームの削除
実装
Microsoft Flow
Azure Function
Bot Framework
PowerShell、等
事例 3 |
シナリオ
OneDrive、
SharePoint など
複数個所に散在する
ドキュメントの資産化
処理
ファイルのコピー/移動
PDF へ変換
共有の開始/停止
実装
Webhook/差分クエリ
Microsoft Flow
Azure Function
事例 4 |
シナリオ
会議の開催から、
会議中の議事録、
および会議後の
情報共有
処理
参加者空き時間
会議室の予約
議事録の保存や共有
タスクの割り当て
実装
PowerApps
カスタムアプリ
事例 5 |
シナリオ
客先訪問など、
移動を含んだ予定が
複数ある場合の
最適化
処理
予定の取得
移動情報の取得
予定の更新
前後予定の作成
実装
Webhook/差分クエリ
Microsoft Flow
Bot Framework
Azure Function
共通 | ベストプラクティス
トリガー
手動
イベント発生時
タイマー
処理
データの取得
データの追加
他サービス連携
データをよりリッチに
実装
ユーザー操作
アプリの場所
サービス
まとめ
ご説明したこと
Microsoft Graph
本日の目標
Microsoft Graph
Microsoft Graph 今後の予定
新機能
クライアント通知
Teams 各種機能
Security API
ベータから正式に
各種ベータは正式に
情報
Twitter
Stack Overflow
Blog
ビデオ
https://graph.microsoft.com
Twitter
#MicrosoftGraph
GitHub
/MicrosoftGraph
StackOverflow
[MicrosoftGraph]
? 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

More Related Content

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