【发布时间】:2021-11-18 18:55:30
【问题描述】:
我有一个使用 Microsoft 身份平台作为身份验证方法的 ASP.NET Core Web 应用程序项目。我想将 REST API 功能添加到同一个项目中,但似乎我无法将 AddMicrosoftIdentityWebApi 方法与 AddMicrosoftIdentityWebApp 一起添加。
在StartUp.cs 中,我将两个AddAuthentication 调用放在一起:
Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));
Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(Configuration.GetSection("AzureAd"));
编译没有错误,但是当我启动项目时,它立即返回 401 错误。我认为这是因为第二行 AddAuthentication 替换了第一行,所以我无法启动网站。
我只是想问一下,该项目是否可以使用 Microsoft Identity Platform 同时提供 Web 应用程序和 Rest API,或者我需要将其分成两个项目,一个用于 Web 应用程序,一个用于 Web API。如果是这样,我怎样才能为两个项目共享相同的数据库和模型?
非常感谢!
【问题讨论】:
-
调用
.AddAuthentication()一次,使用带有scheme 参数的扩展(docs.microsoft.com/en-us/dotnet/api/…)。然后您可能需要 2 个授权策略,与两个身份验证方案相匹配。 (另见docs.microsoft.com/en-us/aspnet/core/security/authorization/…)
标签: c# microsoft-identity-platform