Azure 如何将Easy Auth与.NET Core 3.1 MVC应用程序集成?

Azure 如何将Easy Auth与.NET Core 3.1 MVC应用程序集成?,azure,azure-active-directory,asp.net-core-mvc,asp.net-core-3.1,easy-auth,Azure,Azure Active Directory,Asp.net Core Mvc,Asp.net Core 3.1,Easy Auth,我正在开发一个.NET Core 3.1 MVC应用程序,然后将其发布到Azure Web应用程序。在Azure门户中,对于此托管应用->我启用了使用AzureAD登录的应用服务身份验证。但是身份验证不起作用,因为“User.Identity.IsAuthenticated”在控制器中总是以false出现,我无法获取我想要的其他用户详细信息,如电子邮件等。在搜索时,我发现有一个解决方法,使用Nuget Package for>Net Core 2.2(),但我没有看到任何3.1的解决方案 但是,

我正在开发一个.NET Core 3.1 MVC应用程序,然后将其发布到Azure Web应用程序。在Azure门户中,对于此托管应用->我启用了使用AzureAD登录的应用服务身份验证。但是身份验证不起作用,因为“User.Identity.IsAuthenticated”在控制器中总是以false出现,我无法获取我想要的其他用户详细信息,如电子邮件等。在搜索时,我发现有一个解决方法,使用Nuget Package for>Net Core 2.2(),但我没有看到任何3.1的解决方案

但是,当我通过禁用Azure中的应用程序服务身份验证来设置自定义身份验证,并在Startup.cs中设置身份验证时,如下所示:

services.AddAuthentication(AzureADDefaults.AuthenticationScheme).AddAzureAD(options => Configuration.Bind("AzureAd", options));
这是:

app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints => ...
使用appsettings.json中的config,身份验证工作正常,我也可以获取用户详细信息


但我们首选的解决方案是不在代码中包含任何身份验证设置/自定义身份验证,而是使用Azure AD Easy auth with.NET Core 3.1 MVC应用程序在门户上完全处理它。非常感谢您的帮助。

这是EasyAuth和.NET Core as的已知限制。用户主体在.NETCore中的实现方式不同,EasyAuth无法像在.NETFX中那样自动获取这些细节。这就是为什么您需要使用Maxime的变通方法。

您的变通方法是否一定会带来安全的应用程序?这种方法在当地发展过程中如何发挥作用?您是否可以在本地进行调试,或者每次测试更改时都只能发布到Azure?