Perché IdentityServer4 ApiResource non funziona con JwtBearerOption.Audience?
Aug 18 2020
Ho questa configurazione in IdentityServer:
public static IEnumerable<ApiResource> ApiResources =>
new ApiResource[]
{
new ApiResource
{
Name = "MyApi"
}
};
e questa configurazione jwt nell'API Web 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,
};
});
Mi aspetto che l'autenticazione dell'API Web non accetti il token da IdentityServer perché l'API Web JwtBearerOption.Audience non è uguale a "MyApi". Ma nella mia configurazione il pubblico viene convalidato solo se il pubblico è impostato su "https://localhost:5001/resources" e invaliderà se lo imposto su "MyApi"
Documentazione IdentityServer4 relativa alla mia domanda.
Risposte
1 ToreNestenius Aug 18 2020 at 14:30
Per inserire MyApi nell'elenco dei segmenti di pubblico è necessario definire un ApiScope come in IdentityServer4 (v4.0x)
Vedi questo articolo per maggiori dettagli