identityserver4 - 在网络场中运行 IdentityServer4 的提示
问题描述
有没有人有在负载均衡器后面的网络场(多个 IIS 服务器)中运行 IdentityServer4 的经验?我们在让两台服务器一起工作时遇到了一些问题。我没有看到 IdentityServer4 的部署指南。IdentityServer3 这里有一个。
https://identityserver.github.io/Documentation/docsv2/advanced/deployment.html
我们在 Startup.cs 中实现了 DataProtection。
StackExchange.Redis.ConnectionMultiplexer connectionMultiplexer = RedisConnectionFactory.GetConnection();
RedisKey redisKey = appSettings.RedisKeyPrefix;
services.AddDataProtection().PersistKeysToRedis(connectionMultiplexer, redisKey);
负载均衡器在第 7 层运行。它解密 SSL 并重新加密,以便它可以使用 X-Forwarded-For 值检查和更新标头。为此,我们在 Startup.cs 中添加了 ForwardedHeadersOptions,以便应用程序看到最终用户的 IP 而不是负载均衡器。
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Add(new IPNetwork(...);
options.KnownProxies.Add(...);
});
我们的配置和操作存储都使用 SQL。
我是否遗漏了一些东西来确保场中的 2 台服务器可以一起工作?在检查场中其他服务器最初生成的 cookie 和令牌时,我们是否应该期望 cookie 和令牌验证都正确处理?
解决方案
推荐阅读
- c# - 实时捕获 Unity 像素数据的最佳选择是什么?
- sql - 在 Redshift 中按逗号分隔符拆分字符串
- node.js - Node.js 中的 Redis XREAD 和 XREVRANGE
- html - 阻止某些 JSX 页面上的全局 CSS
- google-apps-script - 我在 A 列中有一个排序的、唯一的和重复的值。需要在每行 B 列中输出某个值,除了最后一行
- go - 通过 http CONNECT 代理使用 net/smtp 发送邮件
- php - 按其值升序对数组进行排序。先低值再高值
- javascript - chrome 扩展动态更改图标(无需点击)
- ansible - Ceph 至少需要 1 个 OSD 来存储数据
- tensorflow - 如何使用 Tensorflow.js 在浏览器扩展/插件中使用 Python 预训练的 Tensorflow 模型