Identity Server 4 从入门到落地(一)—— 从IdentityServer4.Admin开始
最近项目中需要使用Identity Server 4,以前对这个技术只是有些了解,没有系统研究过,网上相关的资料不少,大多是从编写一个简单的认证服务开始,离能够落地使用有相当的距离,理论学习如何不结合实际,只能停留在概念层面。我希望的是能有一个已经可以部署的基于Identity Server 4的认证服务应用,在此基础上研究客户端和Api的编写,以及对各种需求场景进行测试。对这样一个应用的基本要求除了认证服务的功能以外,还包括(1)具备编辑或者配置功能。能够编辑User、Role、Client、Scope、Api Resource等,编辑的内容可以保存在数据库或者配置文件中;(2)可以工作在SSL协议和非SSL协议。在本地测试时,为了简化环境,希望可以不使用SSL协议。(3)可以独立部署,也可以部署在IIS,还需要支持Docker容器部署。沿着这个思路,在GitHub中找到了IdentityServer4.Admin这个项目,基本上符合要求:https://github.com/skoruba/IdentityServer4.Admin 。这个项目支持使用模板开发,可以使用模板创建新的项目,按照自己的需要进行改造,我在这项目的基础上,增加了对BasePath的支持,这样可以将认证服务器和编辑模块部署到同一端口的不同目录下(使用IIS或者Nginx等反向代理),还增加了对非SSL的支持。在Docker支持方面,原项目的配置过于复杂,改为针对认证服务和编辑模块生成两个不同的镜像,在部署时分别创建容器就可以了。项目的地址是 https://github.com/zhenl/IDS4Admin 。项目使用Visual Studio 2022,基于.Net 5(认证服务和管理)和.Net 6(辅助工具控制台)。
克隆或者下载项目后,运行buildscript.bat可以生成部署文件和辅助工具。生成的目录与项目目录同级,名称为IDS4AdminPublish,包括三个子目录,一个是认证服务器(STS),一个是管理界面(Admin),还有一个是辅助工具(Tool)。辅助工具方便生成配置文件和初始的种子数据。

首先进入Tool目录,运行辅助工具IDS4Admin.Tool.exe,设置认证服务器和管理界面应用的地址、数据库的类型和连接字符串,设置完成后执行命令“5”生成配置文件。

生成的json文件保存在Output目录下,包括两个子目录,Admin子目录中包括生成的三个json文件,这三个文件需要拷贝到管理应用的运行目录中(IDS4AdminPublish/Admin),覆盖现有文件,STS子目录中包括生成的认证服务的配置文件,拷贝到认证服务的运行目录中(IDS4AdminPublish/STS)。第一次运行时,要首先运行管理界面应用,因为初始化数据库的部分在这个应用中,然后运行认证服务器,如果一切顺利,在浏览器中访问管理应用,会跳转到认证服务器,要求登录,初始用户名为admin,密码为P@$$word123。登录完成后,就可以对认证服务的资源进行管理了。

环境搭好了,我们可以编写客户端和Api进行测试,深入理解相关的概念。
Identity Server 4 从入门到落地(一)—— 从IdentityServer4.Admin开始的更多相关文章
- Identity Server 4 从入门到落地(五)—— 使用Ajax访问Web Api
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(四)—— 创建Web Api
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(六)—— 简单的单页面客户端
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(七)—— 控制台客户端
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(八)—— .Net Framework 客户端
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(九)—— 客户端User和Role的解析
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(十)—— 编写可配置的客户端和Web Api
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(十一)—— Docker部署
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Identity Server 4 从入门到落地(十二)—— 使用Nginx集成认证服务
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
随机推荐
- 内网渗透DC-5靶场通关
个人博客地址:点我 DC系列共9个靶场,本次来试玩一下一个 DC-5,只有一个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题.靶 ...
- Mybatis初始化机制
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程. 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置 ...
- 按键检测GPIO输入
1. 项目 通过按键控制开关LED灯,按下按键灯亮,再按一下灯灭. 2. 代码 mian.c #include "stm32f10x.h" //相当于51单片机中的 #includ ...
- 40个Python入门小程序
有不少同学学完Python后仍然很难将其灵活运用.我整理 37 个Python入门的小程序.在实践中应用Python会有事半功倍的效果. 分享 Github 项目,里面收集了 Python 学习资料 ...
- Coursera Deep Learning笔记 序列模型(二)NLP & Word Embeddings(自然语言处理与词嵌入)
参考 1. Word Representation 之前介绍用词汇表表示单词,使用one-hot 向量表示词,缺点:它使每个词孤立起来,使得算法对相关词的泛化能力不强. 从上图可以看出相似的单词分布距 ...
- UltraSoft - Alpha - Scrum Meeting 5
Date: Apr q9th, 2020. Scrum 情况汇报 进度情况 组员 负责 昨日进度 后两日任务 CookieLau PM 统筹个人进度,协助推进进度 辅助前后端连接工作 刘zh 前端 完 ...
- vim 让人爱不释手的编辑器之神
VIM 基本介绍 vim诞生已有20多年,它常被人称之为编辑器之神,vim的操作理念可以说是独具一格而又出类拔萃,使用vim能极大的提升文本处理效率,因此熟练掌握vim应该是每个程序员都应该做到的事情 ...
- Ubuntu用apt安装MySQL
这里以MySQL5.7为例. # 如果之前有安装旧版,先移除sudo apt-get --purge remove mysql-server mysql-client mysql-common # 安 ...
- cm0 逆向分析
目录 cm0 逆向分析 前言 Strings工具复习 String工具使用说明 Strings工具解cm0题 cm0 逆向分析 前言 Emmmmm,我假装你看到这里已经学过了我的<恶意代码分析实 ...
- DeWeb : 制作图片轮换效果
演示:http://www.web0000.com/slide.dw源代码:http://www.web0000.com/media/source/slide.zip一.新建一个DLL二.除第一行外, ...