微服务架构 | 7. 安全保护
2022-02-01 本文已影响0人
多氯环己烷
前言
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服务原理与实战》
《B站 尚硅谷 SpringCloud 框架开发教程 周阳》
安全性是暴露由许多微服务组成的公共访问 API 时要考虑的最重要的一个方面。Spring 有一些有趣的功能和框架,使我们的微服务安全配置更容易;
1. 安全保护基础知识
1.1 安全保护的三个层次
- 确保正确的用户控制;
- 确保运行服务的基础设施是打过补丁且是最新的;
- 确保实现网络访问控制;
1.2 构建安全服务的考虑因素
- 对所有服务通信使用 HTTPS /安全套接字层(Secure Sockets Layer,SSL):生产环境中微服务应该只通过 HTTPS 和 SSL 提供的加密通道进行通信;
- 所有服务调用都应通过 API 网关:服务网关可以作为一个针对所有服务执行的策略执行点;
- 将服务划分到公共 API 和私有 API:开发人员应该通过将服务分离到两个不同的区域(即公共区域和私有区域)来实现最小权限;
- 通过封锁不需要的网络端口来限制微服务的攻击面:通过限制运行服务的操作系统上的人站端口和出站端口数来限制服务的攻击面;
1.3 目前几种流行的注册中心对比
名称 | 厂商 | 特点(优点) | 缺点 |
---|---|---|---|
OAuth2 |
2. 基于 OAuth2 的安全认证
OAuth2 是一个基于令牌的安全验证和授权框架。他允许用户使用第三方验证服务进行验证。 如果用户成功进行了验证, 则会出示一个令牌,该令牌必须与每个请求一起发送。然后,验证服务可以对令牌进行确认;
3. 构建使用 JWT 令牌存储的 OAuth2 安全认证
JWT 为 OAuth2 令牌提供规范标准,并且可以自定义 JWT 令牌;