【问题标题】:How to integrate Easy Auth with .NET Core 3.1 MVC App?如何将 Easy Auth 与 .NET Core 3.1 MVC App 集成?
【发布时间】:2020-11-23 19:40:14
【问题描述】:

我正在开发一个 .NET Core 3.1 MVC 应用程序,然后将其发布到 Azure Web 应用程序。在 Azure 门户中,对于这个托管的应用程序 -> 我使用 AzureAD 登录启用了应用程序服务身份验证。但是随后身份验证不起作用,因为“User.Identity.IsAuthenticated”在控制器中始终为假,我无法获取我想要的其他用户详细信息,例如电子邮件等。搜索后我发现有一种解决方法使用>Net Core 2.2 (https://github.com/MaximRouiller/MaximeRouiller.Azure.AppService.EasyAuth) 的 Nuget 包,但我没有看到 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 中的配置,身份验证工作正常,我也可以获取用户详细信息。

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

【问题讨论】:

  • 您的解决方法是否肯定会带来安全的应用程序?这种方法在本地开发过程中如何发挥作用?您可以在本地进行调试,还是每次想要测试更改时都只能发布到 Azure?

标签: azure azure-active-directory asp.net-core-mvc asp.net-core-3.1 easy-auth


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 2021-12-21
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2020-08-18
    • 2021-03-06
    相关资源
    最近更新 更多