Я успешно интегрировал мой. net Базовый WebAPI с IdentityServer4, где клиент может запросить токен и отправить обратно через auth. заголовок при вызове контроллера и возможность успешной авторизации. Тем не менее, у меня есть вопрос о штрафной авторизации.
При вставке нового ApiResource я также добавляю области действия (например, app.api1.read, app.api2.read, et c ..) и клиент имеет доступ к областям (app.api1.read и app.api2.read). Когда клиент вызывает app.api1, он может передать области app.ap1.read или app.api2.read, и оба будут успешно авторизованы. В идеале я хотел бы, чтобы клиент передавал область действия для api1 (например, app.api1.read), и если он передает область действия для api2, он не должен быть авторизован.
Startup.cs
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options =>
{
// base-address of your identityserver
options.Authority = "https://localhost:44393";
options.RequireHttpsMetadata = false;
});
TestController.cs
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Route("api/[controller]")]
[ApiController]
public class TestController : Controller
{
Ваша помощь очень ценится.