停更这些天,业余时间和粉丝群的几个大佬单干写了一个基于 Spring Authorization Server 的OAuth2受权服务器的治理控制台我的项目 Id Server,我感觉这个我的项目可能大大降低 OAuth2 受权服务器应用难度。能够让你很不便地去治理 OAuth2 客户端信息,甚至能够一键生成 OAuth2 配置文件。接下来简略介绍一下 Id Server 这个我的项目。
我的项目地址:https://github.com/NotFound40… 记得 Star 一下。
次要性能
- 开箱即用,简略配置后即可应用。
- 创立 OAuth2 客户端,并对 OAuth2 客户端进行治理。
- 提供 OAuth2 受权服务。
-
反对四种客户端认证形式:
- CLIENT_SECRET_BASIC
- CLIENT_SECRET_POST
- CLIENT_SECRET_JWT
- PRIVATE_KEY_JWT
-
反对三种 OAuth2 受权形式:
- AUTHORIZATION_CODE
- CLIENT_CREDENTIALS
- REFRESH_TOKEN
- OIDC 1.0的反对(欠缺中)。
- 一键生成配置
yaml
文件(正在开发中)。 - 提供 UI 控制台,升高上手老本。
- 可动静调整管理员的用户角色,对受权服务器进行按钮性能级别的权限管制。
次要技术
- Spring Boot
- Spring Security
- Spring Authorization Server
- Spring Data JPA
- layui
- thymeleaf
-
数据库
- H2
- Mysql
截图
说这么多,不如放一些图更直观。
简略用法
- 拉取主分支最新代码到本地。
- 通过
IdServerApplication
来启动受权服务器。治理控制台本地登录门路为http://localhost:9000/system/login
,最高权限用户为root
,明码为idserver
。 -
你能够通过
root
用户做这些事件:- 创立角色(角色治理)并为角色绑定权限。
- 创立控制台治理用户(用户治理),并赋予他们角色。
退出性能还未欠缺,须要通过敞开浏览器来革除 session。
OAuth2 测试方法
- 启动Id Server,默认状况下在客户端列表提供了一个内置的 OAuth2 客户端。
- 样例客户端在
samples
文件夹下,间接启动,浏览器配置文件下的http://127.0.0.1:8082/foo/bar
,进入登录页,输出用户名user
和明码user
即可。 - 你也能够在 Id Server 中创立一个客户端并模拟 DEMO 中的配置,次要批改
client-id
,client-secret
,client-authentication-method
,scope
,其它选项除非你比拟理解 OAuth2,否则先不要动,也能够通过 issue 征询。
redirect-uri
必须在受权服务器 Id Server 注册客户端时申明。
如何替换内置用户 user
首先要正确区分治理用户和普通用户这两个概念。
治理用户
root
及其创立的用户为 UI 控制台的治理用户,超级管理员 root
是目前提供了一个默认用户,具备 Id Server 的最高权限。如果你须要自定义,可实现 RootUserDetailsService
接口并注入Spring IoC。
普通用户
普通用户就是 OAuth2 中的资源拥有者,次要对 OAuth2 客户端的受权申请进行受权。默认提供了一个 user
用来演示,开发者能够实现 OAuth2UserDetailsService
接口并注入 Spring IoC 来自定义用户的起源。
多环境
目前 Id Server 提供 H2 和Mysql两种数据库环境,别离对应 application-h2.yml
和application-mysql.yml
两个配置文件。
- H2,默认数据库,在 H2 环境下,数据库 DDL 脚本和 DML 脚本会主动执行,无需开发者手动执行,该环境次要用来测试、钻研、学习。
- Mysql,生产举荐,首次启动时开发者手动执行初始化 DML 脚本。
目前两种环境的成果是统一的,切换时务必在
pom.xml
中更换对应的数据库驱动程序依赖。
愿景
这个我的项目心愿可能帮忙大家学习和应用 OAuth2,目前我的项目主线性能曾经实现,配置生成器和OIDC 相干的性能正在跟进。心愿大家多多反对,star一下。通过 issues 多提BUG,多提需要。
关注公众号:Felordcn 获取更多资讯
集体博客:https://felord.cn