微服务及其安全性模式

简介

本文将介绍大多数API架构实践中使用的通用安全模式

什么是微服务?

微服务是单个业务单位,其中与单个业务目的相关的所有数据和功能都放入一个服务中。

好吧,这是对微服务的一般理解,但是我们真正的意思是什么?

在这里,我们以乐高玩具为例,您可能还记得,当我们过去与乐高积木(Legos)一起玩时,我们是从单个乐高积木开始制作整件作品的。就像每个乐高积木彼此独立一样,每个微服务都是独立的,但是在一起可以带来更大的成就。

在这里,我们可以将每个微服务与一个乐高积木进行比较。

单个微服务
单个微服务
完整的应用程序(包含多个松散耦合的微服务)
完整的应用程序(包含多个松散耦合的微服务)

使用微服务架构的好处

  • 隔离
  • 可扩展性
  • 生产效率
  • 灵活性
  • 加快项目开发
  • 可进化的

微服务还有许多其他好处和功能,但是我们可以再保留一段时间。 在这里,我们需要讨论微服务的安全模式。

微服务安全性模式

1.分层防御

在微服务领域,被称为“ API主导的体系结构”的术语已被广泛使用。 以API为主导的体系结构意味着我们根据其功能域将整个应用程序转换为不同的API层。

分层防御的概念到了。 通过将各种层引入应用程序,我们还为每个层引入了API网关。

由于每个层都有一组不同的AuthN和AuthZ策略,拥有多个API网关使潜在的黑客更难以深入系统。

微服务示例
微服务示例

2.使用访问身份令牌

访问令牌是封装进程或线程的安全标识的对象。

它包含登录会话的安全凭证,并标识用户,用户组,用户特权,在某些情况下还标识特定的应用程序。OAuth和OpenID是此概念的正确实现。

微服务访问令牌
微服务访问令牌

3.最广泛使用的Token令牌

I. SAML (Security Assertion Markup Language)

SAML是一个开放标准,允许身份提供者将授权凭据传递给服务提供者。 使用SAML,您可以使用一组凭据登录到许多不同的网站。 与为您拥有的每个帐户管理单独的登录名相比,每个用户管理一个登录名要简单得多。

II. JWT(JSON Web令牌)和JOSE家族

JWT是一种开放标准,它定义了一种紧凑且自包含的方式,可以在各方之间安全地将信息作为JSON对象传输。 由于此信息是经过数字签名的,因此可以被验证和信任。 可以使用秘密(使用HMAC算法)或使用RSA的公/私钥对对JWT进行签名。

Token令牌流程
Token令牌流程
II. PASETO (Platform Agnostic SEcurity TOken)

PASETO是用于空间受限环境(例如HTTP Cookie,HTTP授权标头和URI查询参数)的声明的加密安全,紧凑且URL安全的表示。 PASETO对要在JSON对象中传输的声明进行编码,并且可以对称加密或使用公钥密码术签名。

PASETO和JOSE标准系列之间的主要区别在于JOSE允许实现者和用户混合和匹配他们自己选择的加密算法(由JWT中的“ alg”标头指定),而PASETO明确定义了协议版本以防止不安全的配置 被选中。

PASETO
PASETO

3.通过代码保护

在这里,我们可以讨论API的核心编码样式/标准。 每个API的代码编写方式均应自动避免所有可能的漏洞。 如果无法避免漏洞,那么您的API至少应该避免OWASP列出的十大漏洞。

OWASP 10大高危漏洞
OWASP 10大高危漏洞

4.扫描依存关系

由于大多数现代API使用容器化方法在云端打包和部署API,因此扫描将用于支持API操作的所有依赖项非常重要。

在Docker Hub映像中发现的漏洞:

Docker漏洞分布
Docker漏洞分布

5.HTTPS强制执行

SSL是用于安全通信连接的协议。 通过使用SSL,HTTPS旨在防止窃听者和恶意用户访问Web应用程序服务。 HTTPS本质上是基于SSL的HTTP。 SSL使用SSL证书(也称为数字证书)建立加密的链接。

http及https
http及https
SO资源郑重声明:
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!

SO资源 » 微服务及其安全性模式