【问题标题】:Authenticating a Blazor WebAssembly app with Azure Active Directory使用 Azure Active Directory 对 Blazor WebAssembly 应用程序进行身份验证
【发布时间】:2023-01-24 23:33:32
【问题描述】:

我已经有一个现有的 Blazor WebAssembly 应用程序,我正在尝试使用 Azure Active Directory 添加身份验证。

我添加了Microsoft.Authentication.WebAssembly.Msal nuget。

在我服务器的Program.cs 中,我添加了以下代码:

builder.Services.AddMsalAuthentication(options =>
        {
            builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
            options.ProviderOptions.LoginMode = "redirect";
        });

我已经将以下内容添加到我的 appsettings.json

  "AzureAd": {
    "Instance": "xxxxxxxxxxx",
    "Domain": "xxxxxxxxxxx",
    "TenantId": "xxxxxxxxxxx",
    "ClientId": "xxxxxxxxxxx",
    "CallbackPath": "xxxxxxxxxxx"
  },

我很难理解我还需要添加什么,以便在运行该应用程序时,我会看到 Microsoft 登录屏幕。

【问题讨论】:

    标签: authentication azure-active-directory blazor blazor-webassembly


    【解决方案1】:

    您需要对部分应用程序或整个应用程序进行授权。默认情况下,应用程序内的所有路由都向公众开放。如果你想屏蔽这些路由中的任何一条,你需要明确地请求授权。
    此处记录了如何执行此操作:Secure ASP.NET Core Blazor WebAssembly

    在 Blazor WebAssembly 应用程序中,可以绕过授权检查,因为用户可以修改所有客户端代码。这同样适用于所有客户端应用程序技术,包括 JavaScript SPA 框架或适用于任何操作系统的本机应用程序。

    始终在客户端应用程序访问的任何 API 端点内对服务器执行授权检查。

    如果您在静态 Web 应用程序等托管选项上托管应用程序,则可以让 Azure 平台强制执行授权,而无需手动执行任何操作。

    Authenticate and authorize Static Web Apps

    【讨论】:

      最近更新 更多