『Apisix安全篇』探索Apache APISIX身份认证插件:从基础到实战_apache apisix 接口认证


📣读完这篇文章里你能收获到

  • 🛠️ 了解APISIX身份认证的重要性和基本概念,以及如何在微服务架构中实施API安全。
  • 🔑 学习如何使用APISIX的Key Authentication插件进行API密钥管理,包括创建消费者和路由。
  • 🔄 掌握如何定期轮换API密钥,以及如何为不同消费者分配不同权限范围的密钥。
  • 📊 探索如何通过日志记录和监控来增强APISIX的安全性和可审计性。


🚀 『Apisix系列汇总』探索新一代微服务体系下的API管理新范式与最佳实践 【点击此跳转】


文章目录

一、引言

在现代微服务架构中,API的安全性至关重要。随着业务系统之间的交互越来越频繁,API成为了核心数据和服务的交换通道。Apache APISIX作为一款高性能的云原生API网关,提供了丰富的插件生态以满足各种API治理需求,其中身份认证就是关键的一环。

1.1 APISIX身份认证基础

API 网关主要作用是连接 API 消费者和提供者。出于安全考虑,在访问内部资源之前,应先对消费者进行身份验证和授权。
image.png

1.2 APISIX支持的身份授权插件

APISIX 拥有灵活的插件扩展系统,目前有很多可用于用户身份验证和授权的插件。

二、APISIX身份认证核心组件

本文将以Apache APISIX内置的Key-Auth插件为例,详细介绍如何实现API的身份认证。

2.1 Consumer

Consumer(也称之为消费者)是指使用 API 的应用或开发人员。
在 APISIX 中,消费者需要一个全局唯一的 名称,并从上面的列表中选择一个身份验证 插件

2.2 Key Authentication

Key Authentication(也称之为密钥验证)是一个相对比较简单但是应用广泛的身份验证方法,基于HTTP Header中的API密钥对请求进行验证。每个客户端都拥有一个唯一的API密钥,当客户端发起请求时,必须在请求头中包含此密钥,服务器端的APISIX将会检查并验证该密钥的有效性。
它的设计思路如下:

  1. 管理员为路由添加一个身份验证密钥(API 密钥)。
  2. API 消费者在发送请求时,在查询字符串或者请求头中添加密钥。

三、身份认证实战

3.1 启用 Key Authentication

3.1.1 创建消费者

创建一个名为 consumer-key 的消费者,并启用 key-auth 插件,密钥设置为 secret-key。所有携带密钥 secret-key 的请求都会被识别为消费者 consumer-key。

curl -i "http://127.0.0.1:9180/apisix/admin/consumers" \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
 "username": "consumerkey",
 "plugins": {
 "key-auth": {
 "key": "secret-key"
 }
 }
}'

3.1.2 创建Routes

创建一个名为routes-key的路由,并启用 key-auth 插件

curl -i "http://127.0.0.1:9180/apisix/admin/routes" \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
 "id": "routes-key",
 "name": "routes-key",
 "uri": "/ip",
 "upstream": {
 "type": "roundrobin",
 "nodes": {
 "httpbin.org:80": 1
 }
 },
 "plugins": {
 "key-auth": {}
 }
}'

3.1.3 验证

Key-Auth插件默认的Headers前缀为apikey,如需修改,可继续往下看
我们可以在以下场景中进行验证:

  1. 发送不带任何密钥的请求
curl -i "http://127.0.0.1:9080/ip"

image.png

  1. 发送携带正确密钥的请求
curl -i "http://127.0.0.1:9080/ip" -H 'apikey: secret-key'

image.png

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署 Apache APISIX 集群可以分为以下步骤: 1. 安装 Docker 和 Docker Compose 在两台 CentOS 7 服务器上安装 Docker 和 Docker Compose。 2. 创建 Docker 镜像 在每台服务器上创建一个 Apache APISIX 的 Docker 镜像,可以使用官方提供的 Dockerfile 或者自定义 Dockerfile。 3. 编写 Docker Compose 配置文件 在一个文件夹下创建 docker-compose.yml 文件,配置两个节点的 Apache APISIX 服务,示例文件如下: ``` version: "3" services: apisix-node1: image: apache/apisix:2.9-alpine container_name: apisix-node1 ports: - "9080:9080" - "9443:9443" volumes: - /etc/localtime:/etc/localtime:ro restart: always command: ["sh", "-c", "exec /usr/local/apisix/bin/apisix start && tail -f /dev/null"] apisix-node2: image: apache/apisix:2.9-alpine container_name: apisix-node2 ports: - "9081:9080" - "9444:9443" volumes: - /etc/localtime:/etc/localtime:ro restart: always command: ["sh", "-c", "exec /usr/local/apisix/bin/apisix start && tail -f /dev/null"] ``` 4. 启动 Docker 容器 使用 Docker Compose 启动 Apache APISIX 容器: ``` docker-compose up -d ``` 5. 配置负载均衡 使用负载均衡器对两个节点的 Apache APISIX 服务进行负载均衡配置。 6. 测试 Apache APISIX 集群 使用 Apache Benchmark 工具或其他压测工具对 Apache APISIX 集群进行性能测试。 以上是部署 Apache APISIX 集群的基本步骤,需要注意的是,集群部署需要考虑数据同步和负载均衡等问题,需要进行详细规划和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值