首先要明白你出于什么场景要用API网关。

1、业务诉求:一般情况下是因为后端服务太多太多,API网关可以给用户提供一个统一的Endpoint,用户不用记那么多乱七八糟的内部服务访问点。这种情况下,实际诉求是业务诉求。

请求归一了,风险也归一了,在安全上的好处:减少攻击面:如果后端服务都暴露接口,那么攻击者看到的是10个入口,API网关就只有1个入口,防1个好过防10个。

集中优势资源:API网关此时处于Hish Risk,可以集中后台10个服务的安全资源加固API网关,可以做的更充分。

纵深防御:这种场景下API网关有认证/鉴权,一般内部服务仍旧有认证/鉴权。攻击者攻破API网关后,还需要再进一步攻破内部服务认证/鉴权才能进入单一服务。(当然,API网关上面有可能存储了所有的后端服务的认证凭据,这就是一锅端了。)攻击检测设备有更多时间发现攻击者。

2、安全诉求:若因为考虑安全而设置API网关,此时和业务诉求可能有点不同。

基于安全诉求,一般情况下会这么干:统一认证/鉴权:这个统一就不是API网关来做统一了,有一个单独的IAM,它负责所有的认证鉴权,提供基于组织、基于用户、基于资源等等的大一统鉴权方式,API网关只是IAM的使用方,自己通常不做认证/鉴权或为了效率提供IAM认证鉴权的本地实现,本质上它不管。

其他基于威胁的防御手段非常多,不一一描述了。

至于你提到的TLS,如果已经有其他认证了,TLS只是做加密通信:API网关对外:一般情况下API网关对外提供链接肯定会支持TLS,但也分场景支持明文方式,比如:请求数据只需要保证完整性做防篡改,此时做Hmac即可,不需要做TLS。

API网关对内:内部通信做转发时,视组网和业务情况而定是否做TLS,需要综合考虑平衡性能和安全。如果要做,可以考虑:HTTP2.0+TLS1.3,效率有较大提升。对外也可以这么做,但是用户客户端不一定支持这两个协议。

我的意见,综合:一般情况下,由于各种服务和API网关出现的时间点不一定一致,没有网关的时候我服务难道就不认证了吗?而且服务形态不同,认证方式可能也不同,比如:我支持用户名口令,网关支持AK/SK。所以各做各的没问题,存在多套认证是合理的。

API网关自己不适合做统一认证/鉴权,这个事情是IAM做的,要统一是IAM的事。

如果也没有IAM,那么API网关做了这个事也不应该影响后端服务,理论上对后端服务应该是完全透明的。

api postmain 鉴权_API网关为什么要统一认证/鉴权?相关推荐

  1. 微服务认证鉴权-API网关

    认证:验证这个用户是谁 鉴权:用户有哪些资源权限(页面.按钮.超链接.接口.接口字段) 授权:为用户添加资源权限 方案:客户端Token(JWT) 流程: 1.用户登录发起认证请求,认证服务执行认证流 ...

  2. 微服务接入oauth2_微服务权限终极解决方案,Spring Cloud Gateway+Oauth2实现统一认证和鉴权!...

    最近发现了一个很好的微服务权限解决方案,可以通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权.此方案为目前最新方案,仅支持Spring Boot 2.2.0.Spring Cloud Hox ...

  3. 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...

  4. 「springcloud 2021 系列」Spring Cloud Gateway + OAuth2 + JWT 实现统一认证与鉴权

    通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权. 将采用 Nacos 作为注册中心,Gateway 作为网关,使用 nimbus-jose-jwt JWT 库操作 JWT 令牌 理论介绍 ...

  5. 认证鉴权对于 API 网关的重要性

    认证鉴权作为 API 网关不可或缺的能力,已然成为用户在选型 API 网关时考量的重要因素之一. 作者钱勇,API7.ai 开发工程师,Apache APISIX Committer 在当下云原生越发 ...

  6. api postmain 鉴权_认证鉴权与API权限控制在微服务架构中的设计与实现(一)

    引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的第一篇,本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现. 1. 背景 最近在做权限相关服务的开发, ...

  7. Spring Cloud与微服务学习总结(6)——认证鉴权与API权限控制在微服务架构中的设计与实现(四)

    本文转载自(http://blueskykong.com/2017/10/26/security4/) 1. 前文回顾 首先还是照例对前文进行回顾.在第一篇 认证鉴权与API权限控制在微服务架构中的设 ...

  8. Spring Cloud与微服务学习总结(5)——认证鉴权与API权限控制在微服务架构中的设计与实现(三)

    本文转载自( http://blueskykong.com/2017/10/24/security3/) 1. 前文回顾 在开始讲解这一篇文章之前,先对之前两篇文章进行回忆下.在第一篇 认证鉴权与AP ...

  9. Spring Cloud与微服务学习总结(4)——认证鉴权与API权限控制在微服务架构中的设计与实现(二)

    本文转载自(http://blueskykong.com/2017/10/19/security2/) 1. 系统概览 在上一篇 认证鉴权与API权限控制在微服务架构中的设计与实现(一)介绍了该项目的 ...

  10. SpringCloud-Gateway网关统一登录鉴权+QQ第三方登录+Vue前后分离解决方案

    具体流程 * 网关鉴权流程:* 前端输入用户名密码去请求token,经过SecurityWeb配置,* 白名单不进入AuthorizationManager,直接进全局过滤器->没有token放 ...

最新文章

  1. iOS红马甲项目Bug总结(3)
  2. 第0篇 面向对象思想
  3. Struts2+Spring2.5+Hibernate3.1实现登陆示例
  4. 万物互联时代 能效管理是怎样一个玩法?
  5. 如何在Anaconda中安装Pytorch
  6. 理解Android Binder机制(3/3):Java层
  7. Java中synchronized同步块的执行流程
  8. 20年研发安全积累,5大研发安全能力让软件“天生安全”
  9. Spring-AbstractRefreshableApplicationContext
  10. 扫码点菜系统代码_餐厅点餐只能选择“桌上扫码”?点餐方式岂能“一刀切”...
  11. spring、spring-boot配置文件属性内容加解密
  12. ARCHICAD 25 for Mac(cad绘图软件)
  13. 学计算机编程笔记本电脑推荐,想选一款笔记本电脑,主要用来学编程,有什么好的推荐吗?...
  14. 税务会计实务【19】
  15. NoClassDefFoundError: Could not initialize class org.apache.kafka.common.record.Compressio
  16. matlab中stem_这个假期为STEM中的儿童和儿童使用机器人入门
  17. CENTOS上的时间/时区设定
  18. 代码复杂度分析——时间、空间复杂度
  19. 数字图像处理之图像修复
  20. 元素和子集,属于与包含

热门文章

  1. 怎么看公司财务报表?
  2. 百度地图电子围栏功能的实现
  3. Codeforces.871D.Paths(莫比乌斯反演 根号分治)
  4. KCF跟踪算法 入门详解
  5. hihocoder-Week195-奖券兑换
  6. 如何复制或导出托管磁盘
  7. docker学习笔记一:基本安装和设置容器静态ip
  8. c# Invalidate() Update() Refresh()的区别
  9. 九度OJ - 题目1481:Is It A Tree?
  10. git commit或pull后恢复到原来版本