JeeSite 快速开发平台
官方网站
    • 平台简介
    • 架构特点
    • 技术选型
    • 功能介绍
    • 安装部署
    • 常见问题
    • 目录结构
    • 更新日志
    • Vue 文档
    • BPM 文档
    • Cloud 文档
V4 演示
Vue 演示
💖联系
  • 我要提意见、文档纠错
  • JeeSite 代码库, 请⭐Star关注
  • JeeSite Vue 代码库, 请⭐关注
  • Spring Cloud 微服务架构
  • JeeSite 手机端/移动端
  • Flowable 中国式工作流
  • OAauth2 统一认证服务器
  • 政务内外网环境中间件
  • 访问 ThinkGem 官方博客
  • 点击进入,下拉查看动态
官方网站
    • 平台简介
    • 架构特点
    • 技术选型
    • 功能介绍
    • 安装部署
    • 常见问题
    • 目录结构
    • 更新日志
    • Vue 文档
    • BPM 文档
    • Cloud 文档
V4 演示
Vue 演示
💖联系
  • 我要提意见、文档纠错
  • JeeSite 代码库, 请⭐Star关注
  • JeeSite Vue 代码库, 请⭐关注
  • Spring Cloud 微服务架构
  • JeeSite 手机端/移动端
  • Flowable 中国式工作流
  • OAauth2 统一认证服务器
  • 政务内外网环境中间件
  • 访问 ThinkGem 官方博客
  • 点击进入,下拉查看动态
  • 快速了解

  • 开发手册

  • 前后分离

  • 功能专题

    • BPM 业务流程
    • 用户类型、类型扩展
    • 消息推送、消息提醒
    • 单点登录、OAuth2
    • 作业监控、任务调度
    • 文件存储、对象存储
    • 可视化数据大屏
    • 在线报表设计器
    • 在线预览图片文档
    • 涉密 “三员” 管理
    • 手机端移动端、Uni-App
    • OAauth2 统一认证服务
      • 介绍
      • 功能白话
      • 快速体验
        • 服务端在线演示
        • 服务端本地化部署
        • 客户端配置方法
      • 授权调用接口
  • 云服务架构

  • 技术服务与支持

JeeSite OAauth2 统一认证服务器软件文档

# 介绍

JeeSite OAuth2 Server 是基于 Spring Authorization Server 0.2 框架实现的 OAuth2 统一认证服务器。

Spring Authorization Server 有 Spring Security 团队维护,起初有社区驱动,目前已纳入 Spring Projects 中。

目前国内使用 Spring Security OAuth Server 实现的比较多,但已经不推荐使用,在 Spring 框架新版里 Spring Security OAuth Server 的代码中,已经被标记 “Deprecated” 注解。

Spring 官方推荐使用 Spring Authorization Server 框架取代 Spring Security OAuth 中的 Authorization Server。

Spring Authorization Server 完成了 授权码模式、密码模式、刷新令牌、撤销令牌、资源服务,实现 应用接入授权、JDBC 存储 等功能。

开源地址:https://github.com/spring-projects/spring-authorization-server (opens new window)

# 功能白话

OAuth2 这个词,相信你已经比较耳熟,它的概念这里就不长篇大论了,网上可以搜索 “OAuth2” 就会到很多学习资源。 你可能看了很多概念还是不太理解,本文就通过大白话,来简要介绍下 OAuth2 的使用场景。

OAuth2 服务器都有哪些?比如各大互联网中的 “开放平台”,如:QQ 开放平台、微信开放平台、百度开放平台 等等, 开放平台中就实现了 OAuth2 协议。也就是可以通过 QQ 账号,获取 QQ 开发平台里的一些数据资源,也就是咱们平时见到的,通过 QQ 账号登录咱们的系统。

JeeSite OAuth2 Server 主要包括两部分:一是身份认证服务:通过账号密码进行登录系统,说明这个账号是合法的; 二是资源服务:这个账号可以获取哪些资源,可以访问哪些数据,比如 JeeSite 的用户信息数据。

服务端:

首先需要在 JeeSite OAuth2 Server 菜单里找到 “应用接入管理”,注册一个应用(第三方系统)并设定该应用的授权范围。 这样注册的应用就有权限获取 JeeSite 认证系统里的账号资源,进行登录自己的系统了。

客户端:

调用步骤(OAuth2授权码模式):

  1. 第三方系统,调用 JeeSite 认证服务授权码获取接口
  2. 若 JeeSite 认证服务未登录,则先登录 JeeSite 认证中心
  3. 认证中心会弹出 “应用接入” 授权确认界面,等待授权确认(也可以免确认)
  4. 授权允许确认后,返回授权码 code 给第三方系统
  5. 第三方系统根据 code 获取令牌 access_token 接入码
  6. 第三方系统再根据 access_token 获取相应资源(如:JeeSite 认证服务的 用户信息)
  7. 第三方可根据用户信息进行登录自己的系统

# 快速体验

# 服务端在线演示

  1. 地址:http://demo.jeesite.com/ (opens new window)
  2. 菜单:扩展功能 -> 应用接入管理

# 服务端本地化部署

打开 web 的 pom.xml,加入如下模块依赖代码:

<!-- 统一认证服务器 -->
<dependency>
	<groupId>com.jeesite</groupId>
	<artifactId>jeesite-module-oauth2-server</artifactId>
	<version>${project.parent.version}</version>
</dependency>
1
2
3
4
5
6

注意:该软件独立授权,请联系商务咨询。

# 客户端配置方法

打开 web 的 pom.xml,加入如下模块依赖代码:

<!-- 第三方账号登录 -->
<dependency>
	<groupId>com.jeesite</groupId>
	<artifactId>jeesite-module-oauth2</artifactId>
	<version>${project.parent.version}</version>
</dependency>
1
2
3
4
5
6

注意:v4.1.8+ 专业版提供,此模块依赖,请向售后人员索取。

配置文件 application.yml 增加 JeeSite OAuth2 配置如下:

oauth2:
  jeesite:
    clientId: jeesite
    clientSecret: jeesite
    redirectUri: http://127.0.0.1:8980/js/oauth2/callback/jeesite
    serverUrl: http://127.0.0.1:9999/js
    #serverUrl: https://demo.jeesite.com/js
1
2
3
4
5
6
7

官方提供 demo.jeesite.com 用来演示 OAuth2 认证过程,免本地化部署 OAuth2 服务器。

访问登录地址:http://127.0.0.1:8980/js/oauth2/login/jeesite (opens new window)

# 授权调用接口

1、获取授权码

GET:http://127.0.0.1:9999/js/oauth2/authorize
  ?response_type=code
  &client_id=jeesite
  &redirect_uri=http://127.0.0.1:8980/js/oauth2/callback/jeesite
  &state=c43197e0ed0b6534147389607b5ce359
  &scope=profile
1
2
3
4
5
6

认证服务器允许接入后,调用 redirect_uri 地址,在该地址中可接受到 code 参数。

2、获取接入令牌

POST:http://127.0.0.1:9999/js/oauth2/token
  ?code=_6r1eh3dablJ-yC-CcTaScJRasMlnWo68N-3pHNrddFVNS0XFS1QXU9VSMOF_0rQc-c4uZd6oAc_CjPcrr-R7LHXxhvAUxCJqb874RxN4WFjL168pxH5Q6V-r8n0xV2-
  &client_id=jeesite
  &client_secret=jeesite
  &grant_type=authorization_code
  &redirect_uri=http://127.0.0.1:8980/js/oauth2/callback/jeesite
1
2
3
4
5
6

返回结果:

{
  "access_token":"eyJraWQiOiI5YzU4NmIzMi03MGViLTQ4ZjQtODk0Yi03YWNmODA0Yzc5NzEiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJzeXN0ZW0iLCJhdWQiOiJqZWVzaXRlIiwibmJmIjoxNjMwMDQzNTUyLCJzY29wZSI6WyJwcm9maWxlIl0sImV4cCI6MTYzMDA0MzczMiwiaWF0IjoxNjMwMDQzNTUyfQ.eflA4KHComs3w12LJAZaFsy9lQ_wT4WrCmrGIRXnJGwteZ_r9cFWxsutRmXcG3A8TV2qj4uLKzy6Tp1Ssn1SVSgdfEpYz-3MRJFlhT96GAWRauBSniWyJae8ind_CZoflFwQ33q35yQbF_7PDnJRC8MlUk8Y3NnxdoJOhoPUe2Wfqgm70xxNhwOY0wYNFbnql4VkzHLsZ4jUnF-xENIOdlBQiVy4HyOE0z5K0_KzuMP3UaqmNUyUI0RkRZNzwo0C3jVnLMFbnHDU-VdcsFvuBQGwPZw24xXZput5mUWsmm4nXlyvNy_WtX7mPcyx10snOTsXwgc9zz6voRE5ULJrhA",
  "refresh_token":"H4lLcea7bK7FDxuEzDIGq16uAwTdxQHqKAkiQXZibHl_w-8TQ3LMeX4njozkFMAsCnh-oT-39kHmi3vKPKRs2eT9ruoAqYy9DG9-vU6rbEiTQDcYGbqdQCQO1-FpExM6",
  "scope":"profile",
  "token_type":"Bearer",
  "expires_in":180
}
1
2
3
4
5
6
7

3、获取用户信息

GET:http://127.0.0.1:9999/js/oauth2/profile?access_token=eyJraWQiOiI5YzU4NmIzMi03MGViLTQ4ZjQtODk0Yi03YWNmODA0Yzc5NzEiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJzeXN0ZW0iLCJhdWQiOiJqZWVzaXRlIiwibmJmIjoxNjMwMDQzNTUyLCJzY29wZSI6WyJwcm9maWxlIl0sImV4cCI6MTYzMDA0MzczMiwiaWF0IjoxNjMwMDQzNTUyfQ.eflA4KHComs3w12LJAZaFsy9lQ_wT4WrCmrGIRXnJGwteZ_r9cFWxsutRmXcG3A8TV2qj4uLKzy6Tp1Ssn1SVSgdfEpYz-3MRJFlhT96GAWRauBSniWyJae8ind_CZoflFwQ33q35yQbF_7PDnJRC8MlUk8Y3NnxdoJOhoPUe2Wfqgm70xxNhwOY0wYNFbnql4VkzHLsZ4jUnF-xENIOdlBQiVy4HyOE0z5K0_KzuMP3UaqmNUyUI0RkRZNzwo0C3jVnLMFbnHDU-VdcsFvuBQGwPZw24xXZput5mUWsmm4nXlyvNy_WtX7mPcyx10snOTsXwgc9zz6voRE5ULJrhA
1

返回结果:

{
  "userCode":"system",
  "loginCode":"system",
  "userName":"超级管理员",
  "email":"test@163.com",
  "sex":"1",
  "avatar":"/ctxPath/userfiles/avatar/0/none/system.jpg",
  "sign":"匠心品质"
}
1
2
3
4
5
6
7
8
9
进入 JeeSite 源码仓库页面,点击右上角 ⭐ Star 加星关注。

← 手机端移动端、Uni-App SaaS架构、多租户→

联系我们:s.jeesite.com  |  微信号:jeesitex  |  邮箱:jeesite@163.com
© 2013-2023 济南卓源软件有限公司 版权所有 | Theme Vdoing

关注 JeeSite 公众号,了解最新动态

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式