案例架构
开始撸代码之前,先来说说大致的认证鉴权流程,架构如下图:
大致分为四个角色,如下:
-
客户端:需要访问微服务资源
-
网关:负责转发、认证、鉴权
-
OAuth2.0授权服务:负责认证授权颁发令牌
-
微服务集合:提供资源的一系列服务。
大致流程如下:
1、客户端发出请求给网关获取令牌
2、网关收到请求,直接转发给授权服务
3、授权服务验证用户名、密码等一系列身份,通过则颁发令牌给客户端
4、客户端携带令牌请求资源,请求直接到了网关层
5、网关对令牌进行校验(验签、过期时间校验…)、鉴权(对当前令牌携带的权限)和访问资源所需的权限进行比对,如果权限有交集则通过校验,直接转发给微服务
6、微服务进行逻辑处理
针对上述架构需要新建三个服务,分别如下:
| 名称 | 功能 |
| — | — |
| oauth2-cloud-auth-server | OAuth2.0认证授权服 |
| oauth2-cloud-gateway | 网关服务 |
| oauth2-cloud-order-service | 订单资源服务 |
案例源码目录如下:
认证授权