ソリューションのアイデア
このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。
このソリューションは、JavaScript フロントエンド アプリケーション用のプレゼンスを提供します。 Microsoft Graph と Microsoft Entra ID を使用して、リアルタイムのプレゼンス情報を提供します。 Power Automate、Azure Event Hubs、Azure Functions、Azure SignalR Service も使用します。
アーキテクチャ
このアーキテクチャの PowerPoint ファイルをダウンロードします。
データフロー
- Power Automate フローは、Microsoft Entra ID を使用して、Microsoft Graph のアクセス トークンを取得します。
- Power Automate フローは、Microsoft Teams にいるメンバーから選択されたチームを取得します。 このフローは、Microsoft Graph プレゼンス API サブスクリプションを作成し、それを 1 時間ごとに更新して、選択されたチーム メンバーのプレゼンスの変更を追跡します。
- メンバーのプレゼンスに変更がある場合、Microsoft Graph Change Tracking アプリケーション ポリシーは、Key Vault から、Event Hubs への接続文字列を取得します。
- Microsoft Graph 変更通知が処理されると、メッセージが Event Hubs に配置されます。
- Azure Functions は、入力として Event Hubs から Microsoft Graph メッセージを取得します。
- Azure SignalR Service は、Azure Functions 内の出力として定義されます。 これにより、ブラウザーは、Azure SignalR Service にサブスクライブし、リアルタイムでメッセージを受信することができます。
- ブラウザーでプレゼンス メッセージを受信するために、アプリが Azure SignalR Service にサブスクライブします。
コンポーネント
- Microsoft Graph は、Microsoft 365、Windows 10、Enterprise Mobility + Security の大量のデータにアクセスする目的で使用できる統合型プログラミング モデルを備えています。
- Microsoft Entra ID は、Microsoft のクラウドベースの ID およびアクセス管理サービスであり、ユーザーのサインインやリソースへのアクセスを支援します。
- Power Automate では、デスクトップからマウス クリック、キーストローク、コピーと貼り付けの手順を記録することで、反復的な手動タスクを自動化できます。
- Key Vault は、高いセキュリティの下でシークレットを保存およびアクセスするためのクラウド サービスです。
- Event Hubs は、大量のイベントやデータを取り込んで処理するスケーラブルなイベント処理サービスで、短い待機時間と高い信頼性を実現します。
- Azure Functions を使用すると、イベント駆動型のサーバーレス コードを記述し、管理するインフラストラクチャを減らし、コストを節約することができます。
- Azure Functions の Event Hubs トリガーを使用すると、イベント ハブのイベント ストリームに送信されたイベントに応答できます。
- Azure Functions における Azure SignalR Service の出力バインドを使用すると、Azure SignalR Service を使用してメッセージを送信できます。
- Azure SignalR Service は、リアルタイムの Web 機能を HTTP 経由でアプリケーションに追加するプロセスを簡略化します。
- Azure Static Web Apps は、コード リポジトリから Azure にフル スタックの Web アプリを自動的にビルドしてデプロイします。
シナリオの詳細
コラボレーション ツールは、チームの生産的なワークスペースを作成する上で重要な役割を果たします。 Microsoft Teams、Word、PowerPoint などの Microsoft 365 ツールは、ユーザーをオンラインで結び付けて、より効果的に作業できるように支援します。 これらのツールは、ドキュメントとデータに対するリアルタイムの変更をサポートするだけでなく、リアルタイムのプレゼンス情報もサポートします。 プレゼンスを使用すると、チームメイトの空き時間を認識し、コラボレーション セッションにいつ参加できるかを確認することが簡単にできます。
Microsoft Cloud サービスを使用して、カスタム コラボレーション アプリケーションにプレゼンスを追加することもできます。 このソリューションでは、Microsoft Cloud API とサービスを使用して、カスタム アプリケーションでリアルタイムのプレゼンス機能を使用できるようにします。 空き時間ができたユーザーを Microsoft Teams で確認して、コラボレーション セッションに招待できます。
考えられるユース ケース
このソリューションは、以下を必要とするカスタム アプリケーションを使用する企業に適用されます。
- Microsoft 365 データに対するリアルタイムの変更追跡。
- リアルタイムでのブラウザーへのデータのブロードキャスト。
- ユーザーの空き時間が変更された場合のアプリケーション ユーザーへの通知。
- アプリケーションで使用されるシークレットを取得するための安全な方法。
このシナリオのデプロイ
このソリューションを示すコード サンプルを取得してください。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Dan Wahlin | プリンシパル クラウド デベロッパー
次のステップ
このソリューションで使用されるサービスと製品の詳細については、次の記事を参照してください。
- Microsoft Graph
- Microsoft Entra ID
- Power Automate
- Key Vault
- Event Hubs
- Azure Functions
- Azure SignalR Service