学习 skoruba/ IdentityServer4.Admin 完整版

想学习 IdentityServer4 的身份服务器的开发,但正好处于 Net Core 发布 3.0,各种框架处于升级中。

 IdentityServer4 尽提供了基础的功能,界面UI 需要扩展,或者购买商业咨询服务。Github 有几个扩展的项目,其中两个处于持续的更新中,包括升级 Net Core 3.0,分别是:brunohbrito/JPProject.IdentityServer4.SSO

 skoruba/IdentityServer4.Admin ,本Blog仅描述使用后者的一些经验:

    dentityServer4.Admin 的 Dev 版已升级 Net Core 3.0,Clone 整个源码在本地测试,过程记录:

    测试环境是:windows2012, VS2019 16.4, 没有安装 .Net 4.7.2 产生一个 Build Error : MSB3086 , 未能使用 SdkToolsPath, 或者 找到“al.exe”,安装后OK。

    1)由于源项目支持 Docker ,win2012 需要安装 Docker Tools ,麻烦,直接将“VS项目docker-compose” 卸载,否则有一些配置会提示。

    2)同时也删除了主项目 STS.Identity 的 Docker 支持:launchSettings.json 的 Docker 启动项,项目根目录下的 Dockerfile。(项目要增加Docker支持,右健点项目,选‘添加/ Docker 支持...’,可以重新加上删除的两项信息。---- 新建 VS Core Web项目时,有支持 Docker 的可选项。)----- 仅是个人考虑。

      整个解决方案需要设置三个启动项目:(右键点击 ’VS解决方案‘,选择 ’设置启动项目...‘ 菜单。)

  • Skoruba.IdentityServer4.STS.Identity
  • Skoruba.IdentityServer4.Admin
  • Skoruba.IdentityServer4.Admin.Api

1、主项目:Skoruba.IdentityServer4.STS.Identity    IdentityServer4 的扩展,可以单独启动。

      1.1)主项目依赖:Skoruba.IdentityServer4.Admin.EntityFramework     

                          (依赖  Skoruba.IdentityServer4.Admin.EntityFramework.Extensions)

                            Skoruba.IdentityServer4.Admin.EntityFramework.Identity   (依赖 Admin.EntityFramework) 

                            Skoruba.IdentityServer4.Admin.EntityFramework.Shared (依赖 Admin.EntityFramework、Identity) 

        1.2)要真正能运行起来,重点是 EF Core 的配置,以及 数据迁移Migration  命令的运行。由于使用了EF框架,可以支持多种数据库:MSSQL、PostgreSQL, SQLite, MySQL等,但首先要安装相应的驱动。

     Install-Package  Microsoft.EntityFrameworkCore.SqlServer    支持 MSSQL Server,  (坑之一)

        特别提示,源项目的依赖中没有引入。否则 会在  Update-Database  应用 Migration时 出现Build错误。

       默认使用:MSSQL Server 本地版,如果使用其它数据库,还需要修改 appsettings.json 的连接字符串,Helpers\StartupHelpers.cs 中的UseSqlServer、UseNpgsql、UseSqlite、UseMySql 等。

       1.3)在VS 的 "包管理控制台",选择 STS.Identity 项目,运行下列四命令,Migrations for IdentityServer configuration DbContext 与 persisted grants DbContext: 

   Add-Migration IdentityServerConfigurationDbInit -context IdentityServerConfigurationDbContext -output Data/Migrations/IdentityServerConfiguration
   Update-Database -context IdentityServerConfigurationDbContext 
   Add-Migration IdentityServerPersistedGrantsDbInit -context IdentityServerPersistedGrantDbContext -output Data/Migrations/IdentityServerGrants
   Update-Database -context IdentityServerPersistedGrantDbContext

1.4)User Login Configuration/Register Configuration 配置,通过 appsettings.json
Username
Email 。
    
    User 用户自行注册,或者是统一注册。
SmtpConfiguration 或  
SendgridConfiguration。

2、公共项目:Skoruba.IdentityServer4.Admin.EntityFramework.Shared 

        在VS 的 "包管理控制台",选择 EntityFramework.Shared 项目,运行 数据迁移命令:Migrations for Asp.Net Core Identity DbContext:   这是 用户及角色、权限有关的数据结构。

   Add-Migration AspNetIdentityDbInit -context AdminIdentityDbContext -output Data/Migrations/Identity
   Update-Database -context AdminIdentityDbContext

3、管理界面项目 Skoruba.IdentityServer4.Admin
3.1)在VS 的 "包管理控制台",选择 Skoruba.IdentityServer4.Admin 项目,运行 数据迁移命令:Migrations for Logging DbContext 与 Migrations for AuditLogging DbContext
   Add-Migration LoggingDbInit -context AdminLogDbContext -output Data/Migrations/Logging
   Update-Database -context AdminLogDbContext
   Add-Migration AdminAuditLogDbInit -context AdminAuditLogDbContext -output Data/Migrations/AuditLogging
   Update-Database -context AdminAuditLogDbContext
Program.cs 文件
Main
DbMigrationHelpers.EnsureSeedData(host)
Clients
Resources;
         IdentityData           
 
 
posted @   韩梦芫  阅读(672)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示