Azure Active Directory 示例:.NET Native 与 ASP.NET Core v2 整合教程
本教程将引导您通过 Azure-Samples/active-directory-dotnet-native-aspnetcore-v2 开源项目,详细说明如何设置、理解和操作此示例应用。该项目展示了如何从一个WPF桌面应用程序调用受Azure AD保护的ASP.NET Core Web API,利用Microsoft身份平台进行认证。
1. 项目目录结构及介绍
仓库的结构设计以循序渐进的方式呈现教程,主要包含以下子文件夹及其功能描述:
-
1-DesktopAppCallsWebApi
- 此章节示范如何保护一个ASP.NET Core Web API,并使用Microsoft Authentication Library for .NET(MSAL.NET)使WPF桌面应用获取访问令牌,进而调用该API。
-
2-WebAPICallsWebAPI
- 在此基础上扩展,让Web API能够使用“代表”流调用其他由Microsoft身份平台保护的Web API,支持工作或学校账户及个人微软账户认证。
2. 项目的启动文件介绍
在每个子目录下,通常存在一个或多个启动文件,用于运行应用程序或服务。对于1-DesktopAppCallsWebApi部分,关键的启动点是WPF应用程序中的.csproj
文件以及ASP.NET Core Web API的Startup.cs
。后者初始化应用程序的服务和中间件,包括配置认证。
- WPF应用:查找如
MyDesktopApp.csproj
的文件,它是项目的入口点,控制编译和运行。 - ASP.NET Core Web API:在
Startup.cs
中,ConfigureServices
方法添加了必要的服务(如MSI或AAD认证),而Configure
定义了请求处理管道。
3. 项目的配置文件介绍
项目中,配置主要分布在几个地方,尤其关注.config
文件和环境变量。特别地:
-
appsettings.json:这是ASP.NET Core项目中常见的配置文件,包含了应用程序级别的配置信息,比如数据库连接字符串、服务端点等。在此项目里,它也可能存放Azure AD相关的客户端ID、租户ID等认证信息。
-
Secrets.cs(或类似的封装敏感信息的类/文件):开发者可能会选择将密钥和机密不直接暴露于版本控制系统,而是利用环境变量或特定的加密方式存储,在程序运行时动态加载这些值。
确保在部署或测试前,正确填充这些配置文件中的占位符,特别是与Azure AD相关的客户端ID、租户ID以及其他安全凭据,这对成功的认证流程至关重要。
以上就是关于Azure-Samples/active-directory-dotnet-native-aspnetcore-v2项目的基本结构和重要组件简介。遵循这些指导,您可以有效地理解和运用这个示例来构建自己的整合Azure AD的身份验证解决方案。