ASP.NET Core アプリを Microsoft 365 に接続する

完了

このユニットでは、Microsoft Graph に接続して Microsoft 365 からのデータに安全にアクセスするために、アプリケーションを認証する方法を学習します。

Microsoft 365 からのデータにアクセスするための認証

Microsoft Graph は、Microsoft 365 に保存されているデータと分析情報を公開する REST API です。 この情報は一般に公開できません。 アクセスを取得するには、ユーザーが (a) 自分の ID (認証) を証明して (b) アプリケーションによるデータへのアクセス許可に同意する必要があります。 これは Microsoft Entra ID のジョブです。

アプリケーションは、Microsoft Entra ID からアクセス トークンを取得し、そのトークンを Microsoft Graph への各要求に含める必要があります。 アクセス トークンは映画のチケットのようなものと考えることができます。アプリケーションが OAuth プロトコルを使用してチケットを取得し、係員 (Microsoft Graph) にチケットを提示して映画館 (Microsoft 365 内のセキュリティ保護されたリソース) に入ります。

ID が設定されると、ユーザーは既存の Microsoft 365 アカウントを使用してアプリにサインインできます。 これにより、アプリで認証を実装することも、ユーザーの資格情報を保持することも必要ではなくなりました。 また、ユーザーにとっても、アプリにアクセスするために別の資格情報を使用する必要がないためメリットがあります。 さらに、組織はさまざまなアプリケーションに対する従業員のアクセスを制御できます。これは、最近の重要な要件です。

Microsoft Graph のイベントへのアクセス フローを示す図

SDK を使用して Microsoft 365 に接続する

Microsoft Entra ID と Microsoft Graph はどちらも REST サービスであるため、理論的には、直接 HTTP 要求を使用して予定表イベントを取得できます。 しかし、Microsoft はこれを簡略化するため、要求を処理するソフトウェア開発キット (SDK) を 2 つ提供しています。 これらの SDK によって要求の構築や例外処理が行われるため、アプリの構築に集中することが可能になります。

サービス SDK
Microsoft Entra ID Microsoft Authentication Library (MSAL)
Microsoft Graph Microsoft Graph SDK

MSAL は、Microsoft Entra ID を使用して OAuth プロトコルの詳細を処理します。 アプリケーションで MSAL を使用すると、ユーザーは Microsoft 365 アカウントでサインインし、アプリケーションが必要とするすべてのアクセス許可に同意することができます。 ユーザーがサインインすると、MSAL は Microsoft Graph との通信に必要なアクセス トークンを提供します。

MSAL での作業プロセスを簡素化するために、ASP.NET Core アプリケーションは Microsoft.Identity.Web という名前のアセンブリを利用できます。 このアセンブリは、MSAL 機能を抽象化し、それをアプリケーションに統合するプロセス全体を簡素化します。

次の手順

それでは、Microsoft 365 に接続して Microsoft 365 から取得したユーザーの名前とプロフィール画像を表示する簡単なアプリを実行することから始めてみましょう。