当前位置: 首页 > news >正文

NETCORE - IdentityServer4 多节点部署

NETCORE - IdentityServer4 多节点部署

环境: .netcore3.1 

应用负载:10.5.45.104 指向 10.5.84.10,10.5.84.11两台服务器

负载轮询

10.5.84.10,10.5.84.11 上都部署有 ids4服务。

 

当前端通过负载获取到ids4 的 token 后,再次通过负载进行鉴权。就有可能找到另外一台服务器,从而鉴权失败。

 

解决方案:

IdentityServer 集群的铁律(重点)

🚨 所有 IdentityServer 节点必须使用同一套签名证书

 

这样 使token 无论找到哪台服务器都应该鉴权通过。

1. 生成证书

使用管理员权限 打开Power shell

执行

New-SelfSignedCertificate `
 -Subject "CN=idsrv" `
 -KeyAlgorithm RSA `
 -KeyLength 2048 `
 -CertStoreLocation "Cert:\CurrentUser\My" `
 -KeyExportPolicy Exportable

这样会生成一个key

Thumbprint                                Subject
----------                                -------
FA26780436B953E841C6BF4AA8496EB3C96C47FB  CN=idsrv

把它记录下来

也可以通过以下命令查看

Get-ChildItem Cert:\CurrentUser\My

保存下来,执行命令

$pwd = ConvertTo-SecureString -String "123456" -Force -AsPlainText

Export-PfxCertificate  -Cert "Cert:\CurrentUser\My\FA26780436B953E841C6BF4AA8496EB3C96C47FB"  -FilePath C:\idsrv.pfx  -Password $pwd

 

C:\idsrv.pfx 文件放在项目中,修改属性,始终复制到输出目录,这样发布后的文件夹就有这个文件了。

项目中的引用

在 *.HttpApi.Host 项目中,ConfigureServices()方法 里面

using System.IO;
using System.Security.Cryptography.X509Certificates;
using Microsoft.Extensions.Hosting;public override void ConfigureServices(ServiceConfigurationContext context)
{var env = context.Services.GetHostingEnvironment();var certDir = Path.Combine(env.ContentRootPath, "certs");var certPath = Path.Combine(certDir, "idsrv.pfx");// ===== 1️⃣ 检查目录 =====if (!Directory.Exists(certDir)){throw new Exception($"证书目录不存在: {certDir}");}// ===== 2️⃣ 检查文件 =====// ===== 3️⃣ 加载证书 =====
if (File.Exists(certPath))
{var certificate = new X509Certificate2(certPath,"123456",X509KeyStorageFlags.MachineKeySet |X509KeyStorageFlags.PersistKeySet |X509KeyStorageFlags.Exportable);identityServerBuilder.AddSigningCredential(certificate);
}
else
{// 仅开发环境 fallbackidentityServerBuilder.AddAbpDeveloperSigningCredential();
}context.Services.AddIdentityServer().AddSigningCredential(certificate);
}

 

 

修改dockerfile 

 

FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS baseMAINTAINER lihongyuan
LABEL description="this is a test website"
LABEL version="1.0"WORKDIR /app# 复制程序
COPY . .# ⭐ 确保证书权限正确(关键)
RUN chmod 644 /app/certs/idsrv.pfx || trueEXPOSE 80ENTRYPOINT ["dotnet", "RailCDE.HttpApi.Host.dll"]

 

访问测试

http://10.5.45.104:3147/railback/.well-known/openid-configuration/jwks

 

 

 

 

 

end.

http://www.jsqmd.com/news/439923/

相关文章:

  • 2026年企业管理咨询公司推荐:深度评价战略适配与组织增效,解决成本与效率核心痛点 - 品牌推荐
  • 2026年深圳全屋定制品牌推荐:高端家居趋势评测,涵盖大宅与精英圈层核心痛点 - 品牌推荐
  • Flutter 三方库 markdown 的鸿蒙化适配指南 - 掌控标准化文本渲染、高性能解析引擎实战、鸿蒙级内容展示专家
  • 5G 浪潮下的自智网络:海量信令数据的存储架构如何进化?
  • [AI智能体与提效-159] - Python语言优势与弱势
  • 2026年深圳全屋定制品牌推荐:高端家居趋势评测,涵盖大宅与改善场景核心痛点 - 品牌推荐
  • (电压击穿试验仪、体积电阻率测试仪、体积电阻率测定仪)供应商怎么选?厂家推荐哪家好? - 品牌推荐大师
  • SEAGULL模块化系统:对话实体智能体技术解析
  • endo-BCN-PEG8-amine,内型-BCN-八聚乙二醇-胺
  • antv3 x6 基本语法-边、节点、图片处理(七)
  • 导师推荐 9个AI论文写作软件:研究生毕业论文+开题报告高效写作工具测评
  • 2026年深圳全屋定制品牌推荐:基于多场景实测评价,针对环保与工期痛点精准指南 - 品牌推荐
  • 2026年全屋定制品牌推荐:居家与办公场景深度评测,解决环保与设计痛点并附排名。 - 品牌推荐
  • Flutter 三方库 shelf_router_generator 的鸿蒙化适配指南 - 注解驱动的 API 架构、自动化路由生成、鸿蒙级微服务开发提效专家
  • WPF 多值绑定(MultiBinding)详解
  • 计算机毕业设计springboot基于Android高校教学楼信息管理系统 基于SpringBoot与Android技术的智慧校园教室资源调度平台设计 采用移动端的高校教学场所智能化预约与管理系统研发
  • Spring Boot入门(快速搭建第一个项目,新手零配置)
  • 赶deadline必备 一键生成论文工具 千笔·专业论文写作工具 VS 学术猹
  • 现在2026年开始学网络安全的真实情况是什么?还好就业吗?
  • 关于wangEdit如何添加标注
  • 计算机毕业设计springboot基于Android的运动助手 基于SpringBoot与Android技术的智能健身管理平台设计与实现 采用移动端的企业员工运动健康追踪系统研发
  • 拼多多商品券后价API接口使用指南
  • 3月科技企业孵化器公司推荐,看看哪些做得好,科技企业孵化器/企业孵化服务/科技政策申报,科技企业孵化器企业口碑推荐榜 - 品牌推荐师
  • hot100 322.零钱兑换
  • 2026年全屋定制品牌推荐:智能家居趋势评测,涵盖日常与高端场景定制痛点 - 品牌推荐
  • 直接上代码先看效果!咱们先跑个Demo感受下哈里斯鹰优化LSSVM的威力。准备好你的Matlab,把这段代码扔进去运行
  • 2026年国内热门齿轮减速机厂家怎么选?这些要点务必要知道,硬齿面斜齿轮减速机/粮机用减速机,齿轮减速机供应厂家怎么选 - 品牌推荐师
  • 2026年冷水机厂家推荐:聚焦化工制药领域评价,解决定制化与稳定运行痛点 - 品牌推荐
  • 从零到一:现代Web扫雷游戏的全栈开发实践与深度解析
  • 照着用就行:10个降AI率软件降AIGC网站 本科生必看!降AI率测评与推荐