为kong网关添加key-auth插件实现安全认证

news2024/11/23 7:11:58

官方指导文档:https://docs.konghq.com/gateway/latest/get-started/key-authentication/

一、新建一个用户

这里我们新建一个username=luka的用户

[root@min ~]# curl -i -X POST http://localhost:8001/consumers/ \
>   --data username=luka
HTTP/1.1 201 Created
Date: Tue, 30 May 2023 14:16:56 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: http://localhost:8002
X-Kong-Admin-Request-ID: bDQSAZLydiS5oRKeaELyg1ul17eAC7Fo
vary: Origin
Access-Control-Allow-Credentials: true
vary: Origin
Content-Length: 173
X-Kong-Admin-Latency: 18
Server: kong/3.3.0.0-enterprise-edition

{"created_at":1685456216,"custom_id":null,"username":"luka","tags":null,"type":0,"id":"2385bb30-9c0b-4aae-9dc8-34c3b0191589","username_lower":"luka","updated_at":1685456216}[root@min ~]# 

二、为用户luka分配一个key

[root@min ~]# curl -i -X POST http://localhost:8001/consumers/luka/key-auth
HTTP/1.1 201 Created
Date: Tue, 30 May 2023 14:20:24 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: http://localhost:8002
X-Kong-Admin-Request-ID: f7kYQ2qPNXyVM1sWh3OwLeDNIHDV77I2
vary: Origin
Access-Control-Allow-Credentials: true
Content-Length: 190
X-Kong-Admin-Latency: 10
Server: kong/3.3.0.0-enterprise-edition

{"created_at":1685456424,"id":"796e126a-5e61-41ad-a4ba-404a71feb3bd","ttl":null,"tags":null,"key":"mZiuw2s2mJvFTbwhVx1zpYzFGaUbS2t1","consumer":{"id":"2385bb30-9c0b-4aae-9dc8-34c3b0191589"}}

这一步我们看到kong给我们分配一个key:mZiuw2s2mJvFTbwhVx1zpYzFGaUbS2t1

三、开启全局的key-auth

1、启用key-auth插件

[root@min ~]# curl -X POST http://localhost:8001/plugins/ \
>     --data "name=key-auth"  \
>     --data "config.key_names=apikey"
{"created_at":1685456863,"consumer":null,"protocols":["grpc","grpcs","http","https","ws","wss"],"updated_at":1685456863,"ordering":null,"enabled":true,"instance_name":null,"id":"b123cd0a-2410-4fb5-8cd1-3953ed095d4f","service":null,"name":"key-auth","tags":null,"config":{"hide_credentials":false,"key_in_body":false,"key_in_query":true,"key_in_header":true,"run_on_preflight":true,"key_names":["apikey"],"anonymous":null},"route":null}

2、不带key进行请求

在这里插入图片描述

3、携带错误的key进行请求

在这里插入图片描述

4、使用正确的key进行请求

在这里插入图片描述

四、查看当前的已经有的插件,并且取消对应插件

1、查看当前已经有的插件

[root@min ~]# curl -X GET http://192.168.19.50:8001/plugins
{"data":[{"created_at":1685456863,"consumer":null,"protocols":["grpc","grpcs","http","https","ws","wss"],"updated_at":1685456863,"ordering":null,"enabled":true,"instance_name":null,"id":"b123cd0a-2410-4fb5-8cd1-3953ed095d4f","service":null,"name":"key-auth","tags":null,"config":{"hide_credentials":false,"key_in_body":false,"key_in_query":true,"key_in_header":true,"run_on_preflight":true,"key_names":["apikey"],"anonymous":null},"route":null}],"next":null}

2、禁用插件

使用api: http://192.168.19.50:8001/plugins/{plugin_id}来进行禁用

[root@min ~]# curl -X PATCH  http://192.168.19.50:8001/plugins/b123cd0a-2410-4fb5-8cd1-3953ed095d4f --data enabled=false
{"created_at":1685456863,"consumer":null,"protocols":["grpc","grpcs","http","https","ws","wss"],"updated_at":1685458558,"ordering":null,"enabled":false,"instance_name":null,"id":"b123cd0a-2410-4fb5-8cd1-3953ed095d4f","service":null,"name":"key-auth","tags":null,"config":{"hide_credentials":false,"key_in_body":false,"key_in_query":true,"key_in_header":true,"run_on_preflight":true,"key_names":["apikey"],"anonymous":null},"route":null}

# 3、测试禁用后不携带apikey能够正常访问

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE HTTP状态码 HTTP数据报的构造

HTTP状态码HTTP数据报的构造 文章目录 JavaEE & HTTP状态码 & HTTP数据报的构造1. HTTP状态码1.1 200 - OK1.2 404 - Not Found1.3 403 - Forbidden1.4 500 - Internal Server Error1.5 504 - Gateway Timeout1.6 302/301 重定向 2. 构造HTTP请求2.1 浏览器搜索栏输入u…

聚焦2023北京安博会,超高清安防应用将成潮流

(1)2023北京安博会 中国安全防范产品行业协会主办并承办的第十六届(2023)中国国际社会公共安全产品博览会(Security China 2023),将于2023年6月7~10日在北京首钢会展中心开幕。安博…

面试阿里测开岗失败后,被面试官在朋友圈吐槽了......

前一阵子有个徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言,场面让他一度十分尴尬 印象最深的就是下面几个问题: 根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解? 非关系型…

Jenkins+JMeter实现自动化,性能压测玩转CICD!

目录 前言: 准备工作 编写Jenkinsfile 编写JMeter脚本 编写 Dockerfile 总结 前言: 性能压测是应用程序开发中不可或缺的一环。它通过模拟应用程序在真实环境下的负载情况,从而检测系统在高负载下的性能表现。而随着依托云架构部署业务的不…

2022年长三角高校数学建模竞赛B题齿轮箱故障诊断解题全过程文档及程序

2022年长三角高校数学建模竞赛 B题 齿轮箱故障诊断 原题再现: 齿轮箱是用于增加输出扭矩或改变电机速度的机械装置,被广泛应用于如汽车、输送机、风机等机械设备中。它由两个或多个齿轮组成,其中一个齿轮由电机驱动。电机的轴连接到齿轮箱的…

大数据 Ranger2.1.0 适配 Kafka3.4.0

Ranger2.1.0 适配 Kafka3.4.0 官方说明POM代码说明 根据官方说明Kafka3.0以上版本将会被替换权限认证方式,包括 类和方法 的变换,所以需要对ranger中继承 kafka 的实现中,修改相应的逻辑 官方说明 Kafka3.0以上版本将会被替换权限认证方式&a…

vue项目瘦身

如图 项目中node_modules包已占用十几G,我也是发现我的磁盘空间缩小的超级快,因为好几个项目,甚至有的项目包已经占了50多G,这都得益于上一个刚走了的laji npm install -g depcheck 一旦安装了depCheck,您可以在命令行…

通过 Github workflows CI/CD 自动化部署 Github Pages hugo 免费博客

通过 Github workflows CI/CD 自动化部署 Github Pages hugo 免费博客 文章博客地址:https://blog.taoluyuan.com/posts/github-workflows/ Github Workflows 介绍 GitHub Actions 介绍 GitHub 文档:https://docs.github.com/zh/actions/learn-githu…

相机的畸变矫正与opencv代码说明

相机的畸变矫正与opencv代码说明 简介鱼眼模型的畸变校正针孔模型的畸变校正 简介 图像算法中会经常用到摄像机的畸变校正,有必要总结分析OpenCV中畸变校正方法,其中包括普通针孔相机模型和鱼眼相机模型fisheye两种畸变校正方法。普通相机模型畸变校正函…

机器人专业讲师与科技的转型思考

2023年以前,编程需要学习各种语法,现在只需要提示词。 未来还需要编程老师吗?需求一定越来越少。 “ Prompting TurtleSim from ChatGPT ” https://github.com/mhubii/chatgpt_turtlesim The demo lets ChatGPT call into ROS services …

左孩子右兄弟路径之谜

题目 对于一棵多叉树,我们可以通过 “左孩子右兄弟” 表示法,将其转化成一棵二叉树。 如果我们认为每个结点的子结点是无序的,那么得到的二叉树可能不唯一。 换句话说,每个结点可以选任意子结点作为左孩子,并按任意顺序…

开源版社区团购系统源码 含小程序完整前后端+搭建教程+私有化部署

分享一个社区团购系统源码,源码开源可自由二开,含小程序完整前后端和详细的搭建教程,可私有化部署终身使用,功能界面diy团长供应商拼团秒杀优惠券菜谱积分群接龙充值预售配送等功能。 系统功能一览: 1、商品&#xf…

企业级应用:检测服务是否正常运行

1.说明: 在公司日常小项目中,会遇到一些小需求,比如:检测服务是否正常运行。 当一个经验不是很足的项目经理,让你写一个接口,然后检测服务是否正常运行啦。 然后你说阿里云有自动检测的接口,…

一文说明ROS中URDF和SRDF分别是什么

文章目录 前言一、功能作用说明URDFSRDF 二、样例文件说明URDF文件例子SRDF文件例子 总结 前言 URDF全称为Unified Robot Description Format,中文可以翻译为“统一机器人描述格式”。与计算机文件中的.txt文本格式、.jpg图像格式等类似,URDF是一种基于…

浅谈TCP IP协议(二)IP地址

上一节大致了解TCP/IP协议栈是个啥东西,依旧是雾里看花的状态,有很多时候学一门新知识时,开头总是很急躁,无从下手,刚学会一点儿,却发现连点皮毛都不算,成就感太低,所以任何时候学习…

JavaScript 中的 Window.open() 用法详解

文章目录 1 方法介绍2 参数说明3 使用示例3.1 当前窗口中打开网页3.2 新窗口中打开网页3.3 在独立窗口中打开一个指定大小和位置的网页 1 方法介绍 window.open() 方法是 JavaScript 中的一个内置方法,用于在浏览器中打开一个新的窗口或标签页。 这个方法的语法是…

《五》 Git 中的标签和分支

标签 tag: Git 可以给仓库中某一次 commit 的提交打上标签。对于重大的版本经常会打上一个标签来表示它的重要性。 创建标签: git tag【tag 名称】:创建标签。 查看标签: git tag:查看标签。 推送标签到远程仓库…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(5月30日论文合集)

文章目录 一、检测相关(16篇)1.1 Contextual Object Detection with Multimodal Large Language Models1.2 Towards minimizing efforts for Morphing Attacks -- Deep embeddings for morphing pair selection and improved Morphing Attack Detection1.3 Mining Negative Tem…

Pytorch CIFAR10图像分类 ShuffleNet篇

Pytorch CIFAR10图像分类 ShuffleNet篇 文章目录 Pytorch CIFAR10图像分类 ShuffleNet篇4. 定义网络(ShuffleNet)Channel Shuffle网络单元 Shuffle UnitShuffleNet 网络结构summary查看网络测试和定义网络 5. 定义损失函数和优化器6. 训练及可视化&#…

「教程」微信小程序获取经纬度查询天气预警信息

使用天气预警API 可以帮助人们及时获取和了解天气预警信息,以便采取相应的措施来保护自身和财产。天气预警通常是由气象部门或相关机构发布的,用于提醒公众可能出现的极端天气或自然灾害,如暴雨、洪水、台风、暴风雪、雷暴、高温、低温、霜冻…