惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
爱范儿
爱范儿
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
Jina AI
Jina AI
B
Blog
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
腾讯CDC
C
Check Point Blog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
罗磊的独立博客
B
Blog RSS Feed
WordPress大学
WordPress大学
小众软件
小众软件
博客园 - 叶小钗
M
MIT News - Artificial intelligence
GbyAI
GbyAI

博客园 - 温森特

企业应用架构研究系列十三:整合EFCore&Dapper 通用ORM框架EFDapper 企业应用架构研究系列二十四:SQL Server 数据库调优之XEvent 探查器 企业应用架构研究系列十二:网络模型与网络协议 企业应用架构研究系列二十三:微服务之程序网关YARP 企业应用架构研究系列二十六:信号量SemaphoreSlim与Semaphore 企业应用架构研究系列二十八:身份认证 Beginning Out With IdentityServer4 企业应用架构研究系列二十七:Vue3.0 之环境的搭建与Vue Antd Admin探索 企业应用架构研究系列五:极限编程(XP)& 敏捷管理(Scrum) 企业应用架构研究系列二十:创建&发布Docker 企业应用架构研究系列十九:Docker开发环境 前端NEXT实践系列:(一)ECMAScript 6.0技术栈 企业应用架构研究系列三:应用系统集成 企业应用架构研究系列二:MSF&Scrum 项目管理 企业应用架构研究系列一:业务拆分 .NET Standard 跨平台支持的实践 Azure技术系列之Redis篇---第一章数据缓存 MERGE MOSS 2013研究系列---修改默认Logo MOSS 2013研究系列---隐藏Ribbon
企业应用架构研究系列二十五:IdentityServer4 认证服务搭建
温森特 · 2023-01-11 · via 博客园 - 温森特

2023-01-11 17:09  温森特  阅读(812)  评论()    收藏  举报

  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 为我们提供的认证授权服务了。

  

您的支持,我的动力!