Por que o IdentityServer4 ApiResource não funciona com JwtBearerOption.Audience?
Aug 18 2020
Eu tenho esta configuração no IdentityServer:
public static IEnumerable<ApiResource> ApiResources =>
new ApiResource[]
{
new ApiResource
{
Name = "MyApi"
}
};
e esta configuração jwt na API da Web do ASP.NET Core:
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
//identity server
options.Authority = "https://localhost:5001";
//access token recepient
options.Audience = "https://localhost:5001/resources";
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateAudience = true,
ValidateLifetime = true,
};
});
Estou esperando que a autenticação da API da Web não aceite o token do IdentityServer porque a API da Web JwtBearerOption.Audience não é igual a "MyApi". Mas na minha configuração, o público só é validado se o público estiver definido como "https://localhost:5001/resources" e será invalidado se eu definir como "MyApi"
Documentação do IdentityServer4 relacionada à minha pergunta.
Respostas
1 ToreNestenius Aug 18 2020 at 14:30
Para colocar o MyApi na lista de públicos, você precisa definir um ApiScope como em IdentityServer4 (v4.0x)
Veja estes artigos para mais detalhes
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?