У меня есть .Net Core 3.0 Web API, который настроен следующим образом:
services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
...
});
services.AddAuthorizationCore(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
И я включаю его в контроллере следующим образом:
[Authorize(Roles = "Admin,Technician")]
public IActionResult CreateFoo([FromBody] Foo foo)
Некоторые конечные точки APIтакже отключен с помощью [AllowAnonymous]
.
Этот продукт поддерживает несколько сред, и одна конечная точка должна быть либо анонимной, либо авторизованной в зависимости от переменной времени выполнения;в настоящее время используются пользовательские параметры «ASPNETCORE_ENVIRONMENT».
Я видел этот комментарий от лица по безопасности .net, но если я реализую пользовательскую политику, он запрещает анонимный доступ.
Какой самый простой способ разрешить анонимный доступ, если приложение работает в определенной среде?