安全

验证与授权

  • 验证:用来确定你是谁
  • 授权:确定你能做什么

单点登录SSO

单点登录是指当主题视图访问某一资源时,会被重定向到一个身份提供者,这个提供者负责鉴别主体,鉴别完成之后将通知服务提供者采取相应操作

单点登录网关

使用一个统一的网关来鉴别主体,有效地减少重复编码。

但是需要解决的一个问题是,随着服务间的调用,如何在服务间传递这个身份信息?

使用HTTP头携带是个不错的办法

深度防御

把所有鸡蛋放在一个篮子里是不安全的,深度防御的理念是对系统中的每一层做防御,以避免单点故障带来的严重后果

细粒度的授权

当授权角色细分达到一定的粒度时,对系统的管理维护来说是很复杂的。

整体来说,权限的粒度划分应该要以组织的结构为依据

服务间的验证与授权

  • 边界内信任

就如局域网内的通信,在边界内的服务通信,通常都被默认为安全的

  • HTTP(S)身份认证

使用HTTP是不安全的,但是如果使用HTTPS则需要考虑证书的管理问题以及HTTPS无法被缓存等

  • 证书
  • 哈希
  • API密钥
    • 通过服务端管理密钥来识别服务调用者以及对调用者进行管理

静态数据的安全

  • 选择一个众所周知的加密算法,而非自己实现
  • 加密算法应取决于密钥的复杂性,而非算法的保密性
  • 选择应该加密的数据
  • 按需解密
  • 密钥管理

深度防御

  • 防火墙

不同的范围使用不同的防火墙

  • 日志

日志虽然无法预防,但是可以事后检测发生了什么

  • IDS

IDS通常是在可信范围内尽力查找可疑目标

  • 网络隔离

微服务可以利用分布部署的优点来进行网络隔离

  • 操作系统

操作系统的漏洞仍然不可小视

保持节俭

真的需要存储那么多数据吗?

为了安全,或者为了用户的隐私,只需要存取必须的数据即可

内建安全

可以将一些自动化的安全工具集成的CI中

外部验证

外包出去给第三方进行渗透测试

results matching " "

No results matching " "

results matching " "

No results matching " "