将 ASP.NET Core 应用连接到 Microsoft 365

已完成

在本单元中,你将学习如何对连接到 Microsoft Graph 的应用程序进行身份验证,以安全地访问来自 Microsoft 365 的数据。

进行身份验证以访问来自 Microsoft 365 的数据

Microsoft Graph 是一种用于显示存储在 Microsoft 365 中的数据和见解的 REST API。 这些信息并不会公开提供。 若要获取访问权限,用户必须 (a) 证明其身份(身份验证)并 (b) 同意让你的应用程序访问其数据。 这是 Microsoft Entra ID 的作业。

应用程序需要从 Microsoft Entra ID 获取访问令牌,并将其包含在对 Microsoft Graph 的每个请求中。 你可以把访问令牌看作是一张“电影票”:应用程序使用 OAuth 协议来获取“电影票”,然后向“服务员”(Microsoft Graph) 提供电影票以进场观看“电影”(Microsoft 365 中的安全资源)。

设置好身份后,用户可以使用其现有的 Microsoft 365 帐户登录到你的应用。 有了这项功能,你便无需再在应用中实施身份验证以及管理用户凭据。 此外,这项功能还将让用户受益,使其无需再使用其他凭据即可访问你的应用。 此外,它还允许组织控制其员工对不同应用程序的访问权限,这是当前的一项重要要求。

显示 Microsoft Graph 中事件的访问流的图表。

使用 SDK 连接到 Microsoft 365

Microsoft Entra ID 和 Microsoft Graph 都是 REST 服务,因此理论上可以使用直接 HTTP 请求检索文件。 但是,为了便于使用,Microsoft 提供了两个软件开发工具包 (SDK) 来为你处理请求。 这些 SDK 负责生成请求和处理异常,从而让你能够专注于构建自己的应用。

服务 SDK
Microsoft Entra ID Microsoft 身份验证库 (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 检索到的用户的名称及其个人资料图片。