![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringCloud Finchley微服务实战
文章平均质量分 75
SpringCloud Finchley微服务实战
鮀城小帅
在工作中一步步学习、进步,充实工作也充实生活。
展开
-
SpringCloud微服务安全(三)网关安全 3-5 重构代码以使用真实环境
1. 通过OAuth2 Toke的Scope参数控制权限1.1 在服务端认证服务器里,通过配置客户端的Scope,可以控制给这个客户端生成的token有哪些权限1.2 在客户端,申请令牌的时候,可以指定scope示例:在资源服务器 (nb-order-api)里,控制post请求的token ,其scope必须包含write权限,get请求的token必须包含read权限。用postman客户端(clientId=orderApp)去认证服务器申请一个scpoe=read的token,去原创 2021-10-20 15:53:52 · 286 阅读 · 0 评论 -
SpringCloud微服务安全(三)网关安全 3-6 Zuul网关安全开发
微服务架构下的问题:安全处理和业务逻辑耦合,增加了复杂性和变更成本 随着业务节点增加,认证服务器压力增大 多个微服务同时暴露,增加了外部访问的复杂性1. 微服务环境实际场景下,类似订单服务的服务,可能有几十个,每个服务是一个集群,有几十个节点,如下图,1.1 当前微服务架构下的问题问题1:安全处理和业务逻辑耦合,增加了复杂性和变更成本在之前的架构中,订单服务 ,同时又是 资源服务器(如下图),订单服务需要知道认证服务器的地址,去校验令牌,通过token转换为用户信息。也..原创 2021-10-20 15:52:53 · 193 阅读 · 0 评论 -
SpringCloud微服务安全(三)网关安全 3-8 用开源项目spring-cloud-zuul-ratelimit 做网关上的限流
1. 网关的限流用开源项目spring-cloud-zuul-ratelimit做网关上的限流 (项目github:https://github.com/marcosbarbero/)1.1 引入限流组件依赖在 this-security-gateway网关项目中引入限流组件的maven依赖 <dependency> <groupId>com.marcosbarbero.cloud</groupId> <..原创 2021-10-20 15:52:13 · 222 阅读 · 0 评论 -
SpringCloud微服务安全(三)网关安全 3-3 搭建OAuth2 认证服务器
1. OAuth2 的角色和流程2. OAuth2 认证服务器搭建2.1 创建认证服务器工程(1)创建is-server-auth 认证服务器工程(2)pom.xml 依赖以下是使用 OAuth2 的主要依赖配置 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-star原创 2021-10-20 15:49:13 · 884 阅读 · 0 评论 -
SpringCloud微服务安全(三)网关安全 3-2 常见的微服务安全整体架构
1. 整体架构这个图适用于中小公司的微服务架构微服务:SpringBoot 写的Rest服务服务注册与发现:微服务所必备的。每个微服务都会到上边去注册。不管是微服务之间的调用,还是服务网关到微服务的转发,都是通过服务注册和发现拿到服务的信息,来进行服务的调用或转发。配置中心:统一管理配置的地方。服务网关:所有外部请求的入口。微服务不会直接向外暴露,都是通过服务网关来进行转发。安全中心:整个微服务的认证授权。熔断限流:统一的管理微服务的限流、熔断、降级等。。数据总线:左边大原创 2021-10-20 15:46:30 · 373 阅读 · 0 评论 -
SpringCloud微服务安全(三)网关安全 3-1 概述
1. 概述:微服务安全面临的挑战:介绍中小企业的一个微服务架构,相比第三章的单体应用的简单的API所面临的哪些挑战 OAuth2协议与微服务安全:介绍OAuth2中的各个角色,以及相互之间的关系,介绍具体的代码实现 微服务网关安全:搭建网关,安全中心,两个微服务,怎么将安全从微服务中解耦出来放到网关上,与OAuth协议联系起来解决微服务安全面临的新的挑战。2. 微服务安全的新挑战2.1 更多的入口点,更高的安全风险单体应用,入口点只有一个,有一个Filter/Interceptor .原创 2021-10-20 15:45:51 · 352 阅读 · 0 评论 -
SpringCloud微服务安全实战(二)API安全 3-9 总结
风险与安全机制的对应关系认证:(欺骗)。确保你的用户或者客户端真的是他(它)们自己授权:(信息泄露)/(干预)/(越权) 确保每个针对API的访问都是经过授权。审计:(否认)。确保所有的操作都被记录,以便追溯和监控流控:(拒绝服务)。防止用户请求淹没你的API加密:(信息泄露)。确保出入API的数据是私密的...原创 2021-10-20 15:53:01 · 114 阅读 · 0 评论 -
SpringCloud微服务安全(二)API安全 2-8 授权
登录 登录的本质 保持登录状态的方法 常见的登录攻击及防护1. 登录在认证部分用过滤器实现HttpBasic 认证 ,在请求头里携带用户名和密码,存在的问题是,你不可能让用户每个请求都输入用户名密码吧,即使前端把用户名密码存起来,这也是不安全的。1.1 基于Token的身份认证的实现1.2 基于cookie和session的实现2. 登录2.1 登录接口 @GetMapping("/login") public void login(@Validated原创 2021-05-20 15:46:50 · 231 阅读 · 5 评论 -
SpringCloud微服务安全(二)API安全 2-7 授权
1. 授权访问控制:1. ACL :Access Control Lists,直接给每个用户授权,他能访问什么。开发简单,但是用户多的话,给每个用户授权比较麻烦。2. RBAC:Role Based Access Control。给角色授权,给用户赋予角色。授权简单,开发麻烦。2.ACL来实现简单的权限控制方式:在用户表里加入permission字段标识权限。2.1 创建 AclInterceptor 权限拦截package com.imooc.security.filte原创 2021-05-20 15:45:07 · 188 阅读 · 2 评论 -
SpringCloud微服务安全(二)API安全 2-6 审计
1. 补充:如何保证API安全的请求流程当前已经有了流控、认证,但是它们并没有按照要求进行顺序执行。我们要求先执行流控,然后再执行认证。解决方案: 使用 @Order注解流控:认证:2. 审计日志2.1 审计说明审计日志定义:谁,在什么时间,干了什么事。位置:认证之后,授权之前。 这样就知道是谁在访问,拒绝掉的访问也能被记录。如果放在认证之前,那么就不知道是谁在访问;如果放在授权之后,就没办法记录被拒绝的访问。存储:审计日志一定要持久化,记在数原创 2021-05-20 15:42:37 · 609 阅读 · 0 评论 -
SpringCloud微服务安全实战(二)API安全 3-5 认证
1. 常见问题日常开发中会遇到的问题:各种校验: 非空、唯一性等,用于保证数据的完整性 密码加密:对密码进行加密存储,保证安全性 Https访问:保证数据传输的安全性2. 各种校验2.1 validation 校验使用 javax.validation 提供的各种规则对参数进行校验2.2 接口层面的校验(1)在接口相关的参数上添加校验注解,如:@NotBlank(message="……") @NotBlank(message = "用户名不能为空") pr.原创 2021-05-20 15:41:19 · 225 阅读 · 1 评论 -
SpringCloud微服务安全(二)API安全 2-4 认证
1.认证认证:登录和认证是 两个概念,比如你两周、一个月,可能只登录了一次,但认证却是每次访问都要经过的步骤。对于图中的认证不成功,也要继续处理,这个我觉得得看业务,比如管理系统,不登录就不让你访问,但对于比如电商的商品信息,不登录,也是可以访问的。2. 编写一个用户注册服务2.1 根据单一职责原则创建 UserInfo 用于接口返回单一职责原则:用户注册服务,得新建一个UserInfo类,用来接收前端传过来的注册用户信息,而最好不要使用User类直接接收。新增方法,可以将Use原创 2021-05-20 15:41:00 · 256 阅读 · 6 评论 -
SpringCloud微服务安全(二)API安全 2-3 限流实现注入攻击防护
1. 概念流控,流量控制,只放系统能处理的请求的数量过去,处于api安全链路的第一关。为什么要做流控?保证系统的可用性,防止大流量把系统给压死。流控的位置做在认证、审计、授权等整个安全机制的最前边,提前控制流量,避免其他无用的资源浪费。如果没有流控放在第一道档线,攻击者弄一堆肉鸡,发起DDOS攻击,即使你后边的认证、审计、授权做得再好,也可能把你的服务压死。比如系统每秒只能处理500个请求,那么每秒就放500个请求过去,多了的请求直接拒绝掉,这样的话系统不会被压死。实际中的流控是非常复杂的.原创 2021-05-20 15:40:39 · 349 阅读 · 4 评论 -
SpringCloud微服务安全(二)API安全 2-2 注入攻击防护
1. 创建 API1.1 创建 SpringBoot 工程 this-user-api1.2 创建实体类 User@Entity@Datapublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY)// 指定该属性为底层数据库的主键策略 private Long id; @Column private String name; @Column(原创 2021-05-20 15:25:03 · 442 阅读 · 0 评论 -
SpringCloud微服务安全(二)API安全 2-1 API安全概述
是z原创 2021-05-20 15:21:57 · 276 阅读 · 0 评论 -
笔记:SpringCloud与微服务介绍 (一)
一、什么是微服务?微服务:一系列微笑的服务共同组成 跑在自己的进程里 每个服务为独立的业务开发 独立部署 系统的演进:分布式的管理系统的演进:二、架构演进以点餐系统为例设计的架构形态: 单体架构 基于Ajax的前后端分离 分布式(水平扩展&服务拆分)1、单体架构单体架构的优点:容易测...原创 2019-11-14 14:10:59 · 188 阅读 · 0 评论