# spring-cloud-oauth **Repository Path**: fangyukang/spring-cloud-oauth ## Basic Information - **Project Name**: spring-cloud-oauth - **Description**: Spring Cloud Security包含了Spring Security和Spring Security Oauth。实现了Oauth 2授权框架和基于JWT(JSON web tokens)的问题令牌,基于OAuth2,当用户访问客户端应用时,生成并发放token给目标客户端。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2020-10-15 - **Last Updated**: 2021-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-cloud-oauth #### 流程 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0120/103751_c55bc5f9_443818.png "屏幕截图.png") #### 介绍 Spring Cloud Security包含了Spring Security和Spring Security Oauth。实现了Oauth 2授权框架和基于JWT(JSON web tokens)的问题令牌,基于OAuth2,当用户访问客户端应用时,生成并发放token给目标客户端。 1. 基于OAuth2 和 OpenID协议的可配置的SSO登录机制 2. 基于tokens保障资源访问安全 3. 引入UAA(User Account and Authentication)鉴权服务,UAA是一个Web服务,用于管理账户、Oauth2客户端和用户用于鉴权的问题令牌(Issue Token) #### 主要内容 1. 认证对象:如用户、客户端以及目标资源服务器 2. 认证类型:主要有授权码模式、密码模式以及客户端模式 3. 认证范围:即认证权限,并作为一个命名的参数附加到AccessToken上 #### 主要组件 1. security-config 提供服务注册与发现功能 2. security-provider 业务组件,资源服务器 3. security-consumer 业务组件,资源服务器,基于openfeign消费security-provider服务 4. security-auth 基于Spring Cloud Security的鉴权服务 5. security-gateway 基于Spring Cloud Gateway的网关,对外提供统一的api入口 security-auth组件作为授权服务器,配置了客户端的认证类型和认证范围: 1. 认证类型为authorization_code、password两种 2. 认证范围为read、write #### 认证模式-授权码模式 客户端使用authorization_code授权方式,步骤如下: 1. 访问授权服务器请求授权:http://localhost:8081/oauth/authorize?client_id=client&response_type=code&redirect_uri=http://www.baidu.com 2. 授权服务器将浏览器重定向到登录页面:http://localhost:8081/login 3. 用户输入用户名和密码,登录成功,允许访问受保护资源后,重定向到:https://www.baidu.com/?code=etlPQm,其中的code即授权码,后台可以根据这个授权码去换取access_token:http://localhost:8000/api/oauth/token,其中/api/auth代表通过网关路由到consul-auth服务 #### 认证模式-password模式 客户端使用password授权方式,调用/api/auth/oauth/token接口获取access_token