IdentityServer4 更新了开源协议,曾经想替换它,不在使用IdentityServer4 ,但是后来,研究来研究去,发现IdentityServer4 的功能实在是强大,设计体系完整,随着最后版本的升级,现在 IdentityServer4 已经可以在.Net Core 6.0 环境中进行部署使用了。基于中小型项目快速开发搭建的需要,还是有必要对IdentityServer4 的使用做一次 总结。

  首先需要安装一下必要的Nuget 支持包,如下图所示,本示例采用的SQL Server 服务器,安装的是EFCore 最新的版本EFCore7.0,安装Nuget包就不在这里赘述了,基本.Net 开发人员都会的。

  

  安装必要的Nuget 包后,需要对IdentityServer4 在程序主机启动的时候,进行注册配置,这个启动程序的配置至关重要,也是 IdentityServer4 配置里面最核心的部分,如下图所示。里面需要配置一下 IdentityServer4 的Token 颁发策略,同时需要对 IdentityServer4 的PersistedGrantDbContext 序列化Token库,ConfigurationDbContext 配置信息库进行配置。IdentityServer4 的加密签名Provider 可以按照其接口协议,采用数字证书签名,也可以采用非对称加密RSA 生成的公私钥形式进行签名。本示例采用了RSA生成的私钥进行的IdentityServer4  加密技术。

  

  IdentityServer4 可以标准的OpenID Connect and OAuth 2.0认证方式,但中小型项目中,更青睐自定义的认证方式,这个时候,就需要实现 IExtensionGrantValidator 这个接口,进行认证方式扩展,具体实现也是非常简单的,如下图所示。实现完逻辑后,在应用程序主机的启动时候,进行注册,.AddExtensionGrantValidator<IdentityPasswordValidator>(),上面的贴图也有该示例。

  

  IdentityServer4 做好了这些后,还需要做一个数据库的初始化操作,方便IDS服务的快速的部署,也是提高程序的完整性。这个其实也很简单,利用EFCore 的强大的Migration 功能,把 PersistedGrantDbContext ,ConfigurationDbContext ,和自定义的DBContext 进行初始化封装,同时,可以对IdentityServer4  里面对 ApiScopes,Clients,IdentityResources,ApiResources 等配置资源进行动初始化的配置。这个配置也可以通过安装IdentityServer4.Admin.UI 包的形式,通过界面进行配置。但对于中小型项目,基本配置一次,很少进行调整,因此,我们在这里,通过代码进行了初始化配置这个方案。IdentityServer4 的整体配置见下图。

  

  做完这些开发配置后,我们就可以使用 IdentityServer4 为我们提供的认证授权服务了。

  

最新文章

  1. SQL 截取字符串
  2. Win10下Android studio配置
  3. 动软MySQL存储过程模板
  4. 【BZOJ1426】收集邮票 期望
  5. js---html---body标签
  6. 【现代程序设计】homework-10
  7. MVP架构。。。。
  8. jQuery tmpl用法总结
  9. 12个有趣的C语言问答(详解)
  10. 获取执行计划——EXPLAN PLAN
  11. Extjs 3.0 htmleditor实现插入图片功能
  12. [VBS]_[活动分组程序]
  13. Frequent Pattern (FP Growth算法)
  14. 读书笔记-《Maven实战》-2018/4/16
  15. springcloud之hystrix熔断器-Finchley.SR2版
  16. nginx和tomcat的优化
  17. Surrounded Regions - LeetCode
  18. golang_elasticsearch 多精确值匹配
  19. 20172302『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结
  20. android--------自定义视频控件(视频全屏竖屏自动切换)

热门文章

  1. JUI(6)线程池
  2. 44.drf缓存
  3. Spring事务传播行为实战
  4. c语言求输入的任一整数的各位数之和
  5. Rocky之Mysql-MHA高可用
  6. shardingsphere-jdbc 水平分表学习记录
  7. 不一样的纯H5C3动画爱心
  8. ST表优化区间gcd
  9. 错误“AxImp.exe”已退出,代码为 -1163019603
  10. 树莓派配置uwsgi服务