在 .Net Core Web API 应用程序中使用基本身份验证和 JWT 令牌身份验证

问题描述 投票:0回答:1

我有一个 .Net Core Web API 应用程序当前使用 JWT 令牌身份验证方法。需要提供一些 API 来与基本身份验证方法进行外部集成。如何在单个 .Net Core Web API 解决方案中实现这两个选项?

我尝试添加基本身份验证,它覆盖了现有的令牌身份验证。

.net asp.net-core authentication .net-core
1个回答
0
投票

Asp Net Core 中的身份验证由身份验证方案和授权策略组成。

您需要注册几个认证方案:

.AddAuthentication(options =>
 {
     options.DefaultScheme = "samlScheme"
 })
.AddWebSaml(
   "samlScheme",
   options =>
   {...}
)
.AddJwtBearer(
   "jwtScheme",
   options =>
   {...}
)
.AddCustomeScheme(
   "scheme3",
   options =>
   {...}
);

现在,当您具有[Authorize]属性时,只会使用SAML方案,因为我们将其指定为默认策略将使用的默认方案。 幸运的是,我们可以指定一个类似

[Authorize("NotDefaultPolicyName")]
的策略 我们需要注册这个政策:

.AddAuthorization(options =>
{
    options.AddPolicy(FarmApiPolicy.PolicyName, policy =>
{
    policy.AuthenticationSchemes.Add(WebJwtBearerAuthenticationConstants.InternalSystemScopedJwtBearerAuthenticationScheme);
    FarmApiPolicy.ConfigurePolicy(policy);
});
});
© www.soinside.com 2019 - 2024. All rights reserved.