У кого-нибудь есть опыт работы с IdentityServer4 в веб-ферме (с несколькими серверами IIS) за балансировщиком нагрузки? У нас были некоторые проблемы с получением двух серверов для совместной работы. Я не видел руководство по развертыванию IdentityServer4. Здесь есть один для IdentityServer3.
https://identityserver.github.io/Documentation/docsv2/advanced/deployment.html
Мы реализовали защиту данных в файле Startup.cs.
StackExchange.Redis.ConnectionMultiplexer connectionMultiplexer = RedisConnectionFactory.GetConnection();
RedisKey redisKey = appSettings.RedisKeyPrefix;
services.AddDataProtection().PersistKeysToRedis(connectionMultiplexer, redisKey);
Балансировщик нагрузки работает на уровне 7. Он расшифровывает SSL и повторно шифрует, чтобы он мог проверять и обновлять заголовки со значением X-Forwarded-For. Для этого мы добавили ForwardedHeadersOptions в Startup.cs, чтобы приложение видело IP-адрес конечного пользователя, а не балансировщик нагрузки.
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Add(new IPNetwork(...);
options.KnownProxies.Add(...);
});
В наших конфигурационных и операционных хранилищах используется SQL.
Я что-то упускаю, чтобы 2 сервера в ферме могли работать вместе? Стоит ли ожидать, что проверка файлов cookie и токенов должна выполняться правильно при проверке файлов cookie и токенов, изначально созданных другим сервером в ферме?