При использовании IdentityServer4, как можно изменить параметры проверки токена, чтобы эмитент токена не был проверен или было предоставлено несколько допустимых эмитентов?
Я попробовал следующий подход, но, похоже, он не работает:
public void ConfigureServices(IServiceCollection services)
{
// ... omitted
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ApiName = scopeName;
});
services.PostConfigure<JwtBearerOptions>("Bearer", options =>
{
// Option 1: turn off issuer validation at all
options.TokenValidationParameters.ValidateIssuer = false;
// Option 2 (preferable): Provide multiple valid issuers
options.TokenValidationParameters.ValidIssuers = new[]
{
"http://localhost:5000",
"http://127.0.0.1:5000",
};
});
// ... omitted
}
Причина, по которой мне это нужно: API-интерфейсы, защищенные сервером идентификации, доступны изнутри и снаружи.,Внешние стороны используют другой URL-адрес для получения токенов с сервера идентификации, чем внутренние стороны, поэтому защищенный API должен рассматривать как внутренние, так и внешние URL-адреса как действительные.