具有asp.net核心身份的Microsoft Identity Pltaform

问题描述

我正在尝试为Web应用程序的某些用户使用Microsoft Identity Platform。我正在使用此示例: WKUserScript

问题是该示例显示了如何为整个应用程序“全局”打开Microsoft身份,并且所有角色均从平台填充。但是在我的情况下,用户存储在数据库中,并且使用Azure AD登录应该是可选的。理想的流程是使用Microsoft Identity Platform登录用户,成功登录获取电子邮件,然后使用现有的asp.net核心标识机制对用户进行身份验证,并从数据库中填充用户(使用UserStore等)。但是我找不到方法,该怎么做,如何在成功登录平台后处理“事件”?

Microsoft Identity Platform甚至有可能吗?

解决方法

显然,MSAL库不能充当ASP.NET Identity的外部登录提供程序,因此这是不可能的。 来源:https://github.com/MicrosoftDocs/azure-docs/issues/53695

如果某人需要使用具有ASP.NET身份的Azure AD登录,则可以通过以下几种方式完成该操作:

  1. 使用Microsoft.AspNetCore.Authentication.AzureAD.UI https://austincooper.dev/2020/02/02/azure-active-directory-authentication-in-asp.net-core-3.1/ Azure AD as an "external provider"?

  2. 使用WsFederation https://cmatskas.com/asp-net-core-saml-authentication-with-azure-ad/

  3. 通过某些第三方库或内部SAML堆栈实现直接使用SAML: https://matthijs.hoekstraonline.net/2020/04/14/authenticate-an-azure-ad-user-with-saml-for-asp-net-core/