千家信息网

ABP VNext实践中如何搭建可用于生产的IdentityServer4

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章给大家分享的是有关ABP VNext实践中如何搭建可用于生产的IdentityServer4,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起
千家信息网最后更新 2025年12月02日ABP VNext实践中如何搭建可用于生产的IdentityServer4

本篇文章给大家分享的是有关ABP VNext实践中如何搭建可用于生产的IdentityServer4,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、前言

今天给大家讲讲如何在利用abp vnext框架搭建IDS4且可以在生产环境下使用的,其中也需要针对于IDS4在liunx系统使用nginx代理中端点不是https的特别注意事项配置,这个也是一个坑,如果不注意,授权就不成功,除非配置了跳过https的强制验证;

二、ABP VNext CLI生成一个项目解决方案

CLI 命令大家可以参考wiki,命令如下:abp new Louie.Ids4Demo --ui none --separate-identity-server,其中 --separate-identity-server代表将IdentityServer应用程序与API host应用程序分开,--ui none 无UI;打开命令窗口,拷贝进去后就可以生成一个解决方案;

然后我们授权需要修改一下项目中的代码迁移配置,因为我这边用的是mysql,而命令生成的是使用sqlserver,在 Louie.Ids4Demo.EntityFrameworkCore中把SQLServer改成Mysql nuget包,并且在DbMigrations类库中删除Migrations文件夹,然后修改DbContextFactory.cs里面的配置;截图如下:

1、Louie.Ids4Demo.EntityFrameworkCore 类库,去掉sqlserver包,添加mysql包

打开 Ids4DemoEntityFrameworkCoreModule 修改模块注入和命名空间

2、Louie.Ids4Demo.EntityFrameworkCore.DbMigrations 类库,删除Migrations文件

并且修改Ids4DemoMigrationsDbContextFactory.cs文件中的链接配置

3、在Louie.Ids4Demo.IdentityServer 主程序中 appsetting.json 添加数据库连接字符串

4、然后使用迁移命令,生成对应的数据库表

5、打开Louie.Ids4Demo.IdentityServer 主程序,打开Ids4DemoIdentityServerModule.cs 类

在里面配置自定义的RSA非对称加密证书,并且禁止在开发环境下由系统生成的临时证书,我们需要使用重写PreConfigureServices来替换框架默认的配置

当然证书是我自己生成的,大家可以自行生成,把生成好的证书放在主程序的目录下,然后再appsetting.json 中配置一下

上面配置中有涉及到AddResourceOwnerValidator主要是用到密码模式下的自定义验证逻辑以及添加声明,如果大家不需要则可以不用配置,直接注释;AddProfileService 主要是是声明claims需要和库表中定义的申明一致,否则无法显示,这个也是一个安全校验的方式。

配置完后启动打开浏览器,并且启动的url后缀添加 .well-known/openid-configuration,如果可以查看到端点则代表配置成功。

6、问题来了,在我们的IDS4部署到docker上后,发现查看的端点不是https的,我们需要在OnApplicationInitialization 方法中配置一个特殊代码

当然大家也可以看一下一个解决方案的issue:https://github.com/dotnet/AspNetCore.Docs/issues/2384

主要原因是使用的反向代理导致域名是https的,但是端点无法映射https;插入以下代码即可

大家在部署到生产线后就可以看到端点已经是https了

以上就是ABP VNext实践中如何搭建可用于生产的IdentityServer4,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

配置 生成 命令 端点 生产 证书 主程序 代码 文件 方案 解决方案 实践 成功 代表 应用程序 数据 数据库 更多 框架 环境 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 流控服务器器 数据库的技术作用和发展趋势 浙江软件开发五星服务 贵州能源管理平台软件开发 关于网络技术创新 数据库导出后是什么样子 我与网络安全主题征文教师 app软件开发解决方案哪家好 新沂公安局网络安全 未转变者私人服务器指令 软件开发是什么语言写的 access数据库转txt 黑龙江互联网养老软件开发哪儿好 搞网络技术的37岁了 网络安全为国家安全护航 数据库之互联网分库 阳江浩邦网络技术有限公司 发动机ECU软件开发公司 化妆品备案号数据库 河北省网络安全公约 南宁广信进帮网络技术有限公司 上海西有网络技术有限公司 如何设置ie网络安全 贵州能源管理平台软件开发 数据库技术在农业中的应用 郑州鼎盛网络技术有限公司中标 熊家营小学网络安全 华为网络技术学院 校企合作 sql 数据库 用户 河北网络安全教育直播活动
0