如何为单独的 .Net 核心 5 API 和 Blazor 应用程序激活 Azure 活动目录登录?

How to activate Azur active directory login for separate .Net core 5 API and Blazor App?

我是 Blazor 应用程序的新手。但是我开发了一个 .Net core 5 API 来访问和操作数据库。我还有一个消耗 API 并充当前端的客户端 Blazor 应用程序。这两个项目是完全分开的,并且 运行 在不同的线程上,例如 https://localhost:44397/ 对于 API 和 https://localhost:7140/ Blazor App.

目前已与Microsoft.AspNetCore.Identity和Microsoft.AspNetCore.Authentication.JwtBearer

完成认证授权

Blazor 应用在​​其中发送登录模型并获取 JWT 用于内部角色和数据调用。

我的想法不清楚如何将这两个实例与 azure 活动目录登录连接起来,这样我就不必为 API 用户保存用户注册数据。我看过很多文章,但他们只有 Blazor web assembly,其中服务器和 SPA 在同一个项目中。 感谢任何潜在客户。

以下解决方法可能有助于分别使用 Azure AD 对您的 Blazor 和 .net 核心 api 进行身份验证。

首先,您需要注册一个应用程序以使用 Azure AD 对我们的应用程序进行身份验证,并且必须获取详细信息,以便在您的 app.settings.json 中为这两个应用程序提供。

例如:-

"AzureAd": {  
    "Instance": "https://login.microsoftonline.com/",  
    "Domain": "*Your domain name*", //Domain name configured in Azure  
    "TenantId": "0000-00000-00000-0000", // Tenant Id configured in Azure  
    "ClientId": "0000-00000-00000-0000", //  Client Id configured in Azure  
    "CallbackPath": "/signin-oidc" 

有关完整设置,请参阅此 Blog to Add authenticate your .net core web API with Azure AD

要对 Blazor 应用执行相同操作,应用注册完成后,您必须在 appsettigs.json

中添加类似内容

例如:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "{DOMAIN}",
    "TenantId": "{TENANT ID}",
    "ClientId": "{SERVER API APP CLIENT ID}",
    "CallbackPath": "/signin-oidc"
  }
}

有关 Blazor 应用程序的完整设置,请参阅此 微软文档: Secure an ASP.NET Core Blazor WebAssembly hosted app with Azure Active Directory

有关更多信息,请参阅此 SO 线程:-