背景
-
ASP.NET Core 提供了内置的 ASP.NET Core Identity 解决方案来管理用户登录和授权。 -
Azure Active directory (Azure AD) 是 Azure 云托管的解决方案,提供细粒度访问控制,并支持高级场景,如“由应用程序代表用户”为 APIs 授权资源。 -
以包、容器和云服务的形式提供各种第三方解决方案。
-
Identity Manager 提供用于处理用户(包括声明和登录)和角色的 APIs。 -
Identity Store 接口用于持久化标识信息(用户、声明、登录提供者和角色)。 -
关系数据库身份存储的默认实现。您可以选择创建自己的身份存储的自定义实现。 -
身份验证系统(SignInManager)。 -
用户管理界面(Identity UI)。

我们已经听到了您的反馈,并正在研究一种解决方案,以支持更多的没有外部依赖项的即用场景。这使你可以灵活地马上开始使用一个解决方案,同时保持选择其他选项的自由。我们最近在 GitHub 上分享了我们的身份验证计划,得到了很多正面反馈,感谢有机会与这样一个支持我们的社区合作
IdentityServer 和 SPA 模板
为了让您能更轻松地发现可用选项并从中进行选择,我们的模板将链接到一个文档页面,以阐明您的选择。该文档将列出并链接到模板、教程或示例,使您能够添加身份验证,无论是通过我们自己的服务(例如 Azure AD)还是第三方产品(例如 Duende 的 IdentityServer)。
改进自托管解决方案的身份验证
我们听取了您的反馈,并确定了 ASP.NET Core 8 中需要改进的两个方面:
基于 cookie 的身份验证适用于较小的单域解决方案。要自定义体验,您必须覆盖我们用于呈现身份管理 UI 的默认服务器呈现的身份页面。当客户从单页 web 应用程序体验过渡到服务器呈现的体验时,这会导致不一致的体验。该团队将添加 API 端点,使开发人员能够在自定义 UI 中使用单页应用程序体验。

值得注意的是,SPA 相关的增强针对的是在单个域上运行的解决方案,并且不需要对云资源或第三方 APIs 进行身份验证。对于有这些需求的应用程序,Azure AD、IdentityServer 或其他第三方解决方案是首选。
更容易探索和学习
我们现有的文档涵盖了像 ASP.NET Core Identity、Microsoft Identity 平台和 Azure AD 等功能。大多数的现有文档侧重于产品、技术和功能。.NET 8 的目标是让您有一个单一的起点来学习 .NET Auth 文档的可用选项,它整合了支持教程和示例的链接,更重要的是提供了具体的指导。例如,与具有数据库后端、第三方安全 API 依赖项和社交登录的业务应用程序相比,没有外部依赖项的独立 SPA 应用程序具有不同的需求。我们将与客户合作,确定常见的场景,如“保护现有 API 端点”,并提供涵盖这些需求的端到端文档。
与此同时,Microsoft Entra 正在与 .NET 团队进行密切合作,不仅提供了更好的文档和示例,而且还改进了客户端、SDKs 和工具,以减少将 Azure AD 成功添加到应用程序所需的步骤、代码、配置和概念。
下一步
我们正在改变的过程中。在此期间,欢迎您提供反馈和意见,以帮助为每个人提供更好的身份验证。您可以通过在 GitHub 提交 issue 来描述您的问题,或对现有问题进行投票来帮助我们优先考虑影响最大的问题。也欢迎针对我们的 ASP.NET Core 文档提出问题和拉取请求。