如何通过 Konga 可视化界面配置 Kong Key-Auth 实现Open API Key 认证

言简意赅的讲解 Konga 可视化配置 Kong Key-Auth解决的痛点

在现代微服务架构中,API 网关常常用于集中管理 API 的认证和授权。Kong 是一款非常流行的 API 网关,它提供了丰富的插件支持,而 Key Authentication(Key-Auth)插件是一种常见的认证方式。通过该插件,用户可以通过 API Key 来验证 API 请求的合法性。之前给大家讲解过Kong和可视化页面Konga,今天来说说如何非常简单的就能实现API网关的API Key 认证

Konga 是一个可视化的管理界面,它使得对 Kong API 网关的配置更加直观和便捷。在本文中,我们将通过 Konga 可视化界面,展示如何配置 Kong 的 Key-Auth 插件,并实现针对 API Key 的认证。

1. Key-Auth 插件简介

Key-Auth 插件使得 API 服务能够基于 API Key 来进行认证。每个请求需要在请求头中提供一个有效的 API Key,Kong 将会验证这个 Key 是否有效。通常,API Key 会与某个用户或者客户端相关联。

优点:

  • 简单易用,广泛应用于许多 API 服务中。
  • 对于公用 API 或轻量级的认证场景,Key-Auth 插件非常适合。
  • 它通过 API Key 来限制访问,确保只有持有有效 Key 的用户能够访问接口。

缺点:

  • API Key 如果泄露,可能导致安全风险。
  • 需要管理大量的 API Keys,并确保它们的有效性。

2. 使用 Konga 配置 Key-Auth 插件

在 Konga 中,我们可以通过直观的界面来配置 Kong 的插件。下面是配置的具体步骤。

步骤 1:登录 Konga 界面

首先,打开 Konga 管理后台,进入你的 Kong 集群管理界面。假设你已经正确配置了 Konga 和 Kong 的连接。

步骤 2:选择一个服务或路由

Kong 中的插件是与服务(Service)或路由(Route)绑定的,因此首先需要选择你要配置 Key-Auth 插件的服务或路由。

  1. 在 Konga 首页,点击左侧导航栏中的“Services”。
  2. 找到你要配置插件的服务,点击服务名称进入该服务的详情页。

如果你希望针对特定路由进行配置,也可以选择“Routes”选项并选择对应的路由。

步骤 3:添加 Key-Auth 插件

  1. 在服务或路由的详情页中,点击页面右上角的“Plugins”标签。
  2. 在插件列表页,点击右上角的“Add Plugin”按钮。
    Konga添加plugin

步骤 4:配置 Key-Auth 插件

在插件配置页面,选择插件类型为“Key Authentication”。此时,你会看到多个可配置的选项。

常用项:
  • Config:
    • key_names:这个字段指定了 API Key 需要通过哪个头部字段传递。通常情况下,我们使用 apikeyAuthorization 作为头部名称。
    • hide_credentials:如果设置为 true,Kong 会自动隐藏响应中的 API Key 信息,避免泄露。
可选项:
  • Config:
    • key_in_body:设置为 true 时,API Key 会在请求体中传递,而不是在请求头中。
    • key_in_query:设置为 true 时,API Key 会作为查询参数传递。

在 Konga 中,你只需要根据需求填写这些字段即可,通常,key_nameshide_credentials 是最常用的配置项。

例如,假设我们希望 API Key 通过请求头的 apikey 字段传递,并且不返回给客户端,我们的配置如下:

  • key_namesapikey
  • hide_credentialstrue

点击页面底部的“Save”按钮保存配置。
Konga Key-Auth 配置

步骤 5:创建和管理 API Keys

Key-Auth 插件依赖于有效的 API Key,因此你需要为不同的客户端生成和管理 API Key。可以通过 Konga 或直接在 Kong 的数据库中创建 API Key。

在 Konga 中创建 API Key 的步骤如下:

  1. 在 Konga 左侧导航栏中,点击“Consumers”。
  2. 选择或创建一个 Consumer(消费者)。消费者通常代表一个使用你 API 的用户或者应用。
  3. 在 Consumer 的详情页中,点击“Credentials”标签,然后选择“API Key”。
  4. 在弹出的表单中,为该消费者创建一个 API Key。

每个消费者都可以有多个 API Key,Kong 会根据请求中的 API Key 来识别请求的消费者。

Konga Consumers
Konga Consumer 配置

步骤 6:验证配置

配置完成后,你可以通过一个简单的 HTTP 请求来验证 API Key 配置是否生效。确保你在请求中添加了正确的 API Key。

例如,假设你配置的 API Key 在请求头中使用了 apikey 字段,你可以使用 curl 命令进行测试:

curl -X GET http://your-kong-instance/api/your-service-endpoint -H "apikey: your-api-key"

如果 API Key 有效,你将收到 API 响应。如果 API Key 无效或缺失,Kong 将返回 401 Unauthorized 错误。

Konga API Key 插件

Konga API Key 插件

3. 样例展示

假设我们有一个简单的 API 服务,API 路由为 /api/v1/resource。我们希望为这个路由启用 Key-Auth 插件,并通过 apikey 头部进行身份验证。

服务和路由配置:

  • 服务名称:my-service
  • 路由路径:/api/v1/resource

插件配置:

  • key_namesapikey
  • hide_credentialstrue

创建 Consumer 和 API Key:

  • 创建一个名为 my-consumer 的 Consumer,并为其生成 API Key。

请求验证:

通过以下命令验证配置:

curl -X GET http://localhost:8000/api/v1/resource -H "apikey: your-api-key"

如果 your-api-key 是有效的,返回 200 状态码和 API 响应。如果无效,返回 401 错误。

4. 总结

通过 Konga 可视化界面配置 Kong 的 Key-Auth 插件,能够帮助我们快速为 API 实现基于 API Key 的认证。与传统的命令行方式相比,Konga 提供了一个直观的界面,使得配置过程更加简单和高效。Key-Auth 插件在保障 API 安全性、限制不合规请求方面非常有效,但也需要注意管理 API Key 的安全性,以避免泄露带来的安全风险。

在实际应用中,您可以根据不同的需求对 Key-Auth 插件进行细粒度的配置,甚至结合其他插件共同实现更加全面的 API 管理方案。


通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强

Best
Wenhao (楠博万)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++——deque的了解和使用

目录 引言 标准库中的deque 一、deque的基本概念 二、deque的常用接口 1.deque的迭代器 2.deque的初始化 3.deque的容量操作 3.1 有效长度和容量大小 3.2 有效长度和容量操作 4.deque的访问操作 5.deque的修改操作 三、deque的应用场景 结束语 引言 在C中&#x…

使用R语言绘制交互地图

在现代地理信息系统(GIS)应用中,交互地图成为了数据展示的重要工具。相比传统的静态地图,交互地图不仅能够更生动地呈现空间数据,还能增强用户的参与感和数据探索性。本文将介绍如何使用R语言绘制交互地图,…

支持向量机入门指南:从原理到实践

目录 1 支持向量机的基本概念 1.2 数学表达 2 间隔与支持向量 2.1 几何间隔 2.2 支持向量的概念 2.3 规范化超平面 2.4 支持向量的深入分析 2.4.1 支持向量的特征 2.4.2 支持向量的作用 2.4.3 支持向量的代数表示 2.5 KKT条件 3 最优化问题 3.1 问题的形成 3.2 规…

【时时三省】(C语言基础)动态内存函数calloc

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 calloc calloc函数也用来动态内存分配 原型如下: void* calloc(size_t num, size_t size); 它们两个的区别是 它是需要两个参数…

Flutter中添加全局防护水印的实现

随着版权意识的加强,越来越多的应用开始在应用内部增加各种各样的水印信息,防止核心信息泄露,便于朔源。 效果如下: 在Flutter中增加全局水印的方式,目前有两种实现。 方案一,在native层添加一个遮罩层&a…

uniapp - 小程序实现摄像头拍照 + 水印绘制 + 反转摄像头 + 拍之前显示时间+地点 + 图片上传到阿里云服务器

前言 uniapp,碰到新需求,反转摄像头,需要在打卡的时候对上传图片加上水印,拍照前就显示当前时间日期地点,拍摄后在呈现刚才拍摄的图加上水印,最好还需要将图片上传到阿里云。 声明 水印部分代码是借鉴的…

图像处理-Ch7-小波函数

个人博客!无广告观看,因为这节内容太多了,有点放不下,分了三节 文章目录 多分辨率展开(Multi-resolution Expansions)序列展开(Series Expansions)尺度函数(Scaling Function)例:哈尔尺度函数(Haar scaling func)多分…

本地小主机安装HomeAssistant开源智能家居平台打造个人AI管家

文章目录 前言1. 添加镜像源2. 部署HomeAssistant3. HA系统初始化配置4. HA系统添加智能设备4.1 添加已发现的设备4.2 添加HACS插件安装设备 5. 安装cpolar内网穿透5.1 配置HA公网地址 6. 配置固定公网地址 前言 大家好!今天我要向大家展示如何将一台迷你的香橙派Z…

Rocky Linux下安装meld

背景介绍: meld是一款Linux系统下的用于 文件夹和文件的比对软件,非常常用; 故障现象: 输入安装命令后,sudo yum install meld,报错。 12-31 22:12:17 ~]$ sudo yum install meld Last metadata expirat…

数据结构与算法之动态规划: LeetCode 337. 打家劫舍 III (Ts版)

打家劫舍 III https://leetcode.cn/problems/house-robber-iii/description/ 描述 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root除了 root 之外,每栋房子有且只有一个“父“房子与之相连一番侦察之后,聪明的小…

chatwoot 开源客服系统搭建

1. 准备开源客服系统(我是用的Chatwoot ) 可以选择以下开源客服系统作为基础: Chatwoot: 功能强大,支持多渠道客户对接,(支持app,web)。Zammad: 现代的开源工单系统。FreeScout: 免…

sentinel-请求限流、线程隔离、本地回调、熔断

请求限流:控制QPS来达到限流的目的 线程隔离:控制线程数量来达到限流的目录 本地回调:当线程被限流、隔离、熔断之后、就不会发起远程调用、而是使用本地已经准备好的回调去提醒用户 服务熔断:熔断也叫断路器,当失败、…

鸿蒙开发-ArkTS中使用Path组件

在ArkTS中使用Path组件,可以按照以下步骤进行: 一、了解Path组件 Path组件用于根据绘制路径生成封闭的自定义形状。该组件从API Version 7开始支持,并随着后续版本的更新可能增加新的功能。Path组件支持多种属性和方法,用于定义…

高效管理 Nginx 的利器:nginxWebUI 指南和 Docker 部署安装过程

前言 Nginx WebUI 是一个为 Nginx 提供图形化管理界面的工具。通过 WebUI,用户可以轻松管理 Nginx 配置,而无需直接编辑配置文件,尤其适合新手用户和频繁修改配置的场景。 官网文档:nginxWebUI - 文档 本文将分享为什么选择 ngin…

Linux网络 | 理解Web路径 以及 实现一个简单的helloworld网页

前言:本节内容承接上节课的http相关的概念, 主要是实现一个简单的接收http协议请求的服务。这个程序对于我们理解后面的http协议的格式,报头以及网络上的资源的理解, 以及本节web路径等等都有着重要作用。 可以说我们就用代码来理…

2.5万字 - 用TensorFlow和PyTorch分别实现五种经典模型

在深度学习领域,TensorFlow和PyTorch是两大广泛使用的框架,各有其独特的特性和优势。随着人工智能技术的快速发展,越来越多的开发者需要熟练掌握这两种工具,以便在实际项目中选择适合的框架进行高效开发。 目录 入门友好介绍 Te…

【C++】2029:【例4.15】水仙花数

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯我的做法思路分析优势不足之处 💯老师的做法思路分析优势不足 💯对比和优化实现方式对比优化思路和操作1. 直接分解数字的各位…

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中的应用前景

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中具有广泛的应用前景。如有滤波、导航方面的代码定制需求,可通过文末卡片联系作者获得帮助 文章目录 结合LSTM和UKF的背景结合LSTM和UKF的优势应用实例研究现状MATLAB代码示例结论结合LSTM和…

Android14 CTS-R6和GTS-12-R2不能同时测试的解决方法

背景 Android14 CTS r6和GTS 12-r1之后,tf-console默认会带起OLC Server,看起来olc server可能是想适配ATS(android-test-station),一种网页版可视化、可配置的跑XTS的方式。这种网页版ATS对测试人员是比较友好的,网页上简单配置下…

告别Kibana:Elasticsearch 桌面客户端的新变革

告别Kibana:Elasticsearch 桌面客户端的新变革 在大数据处理与分析领域,Elasticsearch 及其相关技术的应用日益广泛。长期以来,Kibana 在数据可视化与查询管理方面占据重要地位,但随着技术的不断发展,用户对于更高效、…