IdentityServer4 ApiResource neden JwtBearerOption.Audience ile çalışmıyor?

Aug 18 2020

IdentityServer'da şu yapılandırmaya sahibim:

public static IEnumerable<ApiResource> ApiResources =>
        new ApiResource[]
        {
            new ApiResource
            {
                Name = "MyApi"
            }
        };

ve ASP.NET Core web API'sindeki bu jwt yapılandırması:

 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,
           };
       });

Web API kimlik doğrulamasının IdentityServer'dan gelen belirteci kabul etmemesini bekliyorum çünkü Web API JwtBearerOption.Audience "MyApi" ye eşit değil. Ancak yapılandırmamda, Kitle yalnızca kitle "https: // localhost: 5001 / kaynaklar" olarak ayarlanmışsa doğrulanır ve "MyApi" olarak ayarlarsam geçersiz olur

Sorumla ilgili IdentityServer4 belgeleri.

Yanıtlar

1 ToreNestenius Aug 18 2020 at 14:30

MyApi'yi kitle listesine almak için IdentityServer4 (v4.0x) 'de olduğu gibi bir ApiScope tanımlamanız gerekir.

Daha fazla ayrıntı için bu makalelere bakın