返回列表 发新帖

kong aksk验签_前端服务Kong配置

[复制链接]

6

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2024-9-23 01:48:41  | 显示全部楼层 | 阅读模式
您提供的内容似乎与Kong API网关的配置有关,特别是涉及到验签(签名验证)的前端服务设置。本内容涉及Kong API网关的aksk验签配置,旨在确保前端服务的请求安全性,通过设置特定的签名验证规则来控制对API的访问。
关于Kong的前端服务配置,具体配置如下:

zbhjkifb4imc3wy.png

zbhjkifb4imc3wy.png


(图片来源网络,侵删)
1、插件选择
基本认证(Basic Auth):适用于对安全要求不高的内部网络或结合HTTPS使用。
密钥认证(Key Auth):适合面向开发人员的API调用,通过密钥进行身份验证。
HMAC认证:适用于需要防止重放攻击的场景,如微信API签名算法。
JWT认证:一个标准化的解决方案,适用于广泛的Java应用环境。
OAuth2.0认证:提供了客户端凭据、授权码、资源所有者密码凭证等多种授权流程。
2、性能考量

zbhjalhlvzlyrxy.png

zbhjalhlvzlyrxy.png


(图片来源网络,侵删)
性能压测结果:不同认证插件对Kong的性能影响不同,基本认证和密钥认证的性能下降约为11%,而HMAC认证的性能下降约为20%。
3、安全性分析
安全优势:HMAC认证可以防止重放攻击。
安全劣势:基本认证和密钥认证的安全性较低,因为用户名和密码或密钥可能在网络中被截获。
4、使用场景
内部网络:基本认证可以用于内部网络或与HTTPS结合使用。
第三方API调用:密钥认证更适用于开发人员调用第三方API。

zbhjakuv30yyo3j.jpg

zbhjakuv30yyo3j.jpg


(图片来源网络,侵删)
互相调用的API:HMAC认证适用于API间的互相调用。
5、配置指南
启用插件:通过Admin API在服务上启用所需的认证插件。
配置参数:根据插件的不同,配置相关的参数,如scopes、token_expiration等。
6、插件配置示例
OAuth2.0配置:在Service上启用oauth2插件,设置scopes、enable_authorization_code等参数。
匿名验证:可以为Service配置keyauth插件,并添加匿名消费者进行访问。
为了优化Kong的使用效果,以下是一些注意事项:
多插件使用:如果同时使用多个认证插件,应合理配置逻辑AND或OR行为,以及匿名访问权限,以确保预期的请求成功。
禁用插件:在某些情况下,如果不再需要某个插件,可以通过Admin API禁用它。
Kong作为一个开源的API网关和服务平台,提供了多种认证插件来满足不同的安全需求和性能考量,选择合适的认证插件,合理配置参数,并根据实际使用场景进行优化,是确保Kong前端服务配置有效性的关键步骤,了解各认证插件的性能影响和安全性特点,可以帮助用户更好地利用Kong的功能,保护API的安全,并提高服务的可靠性。

下面是一个关于如何配置前端服务Kong以使用AKSK(Access Key & Secret Key)进行验签的介绍:
配置项 描述 示例
插件名称 使用的Kong插件名称keyauth
插件配置 插件的相关配置参数
key_names 指定在请求中携带的Access Key的头部名称["XMyAccessKey"]
run_on_preflight 是否在OPTIONS预检请求上也执行验签true
Access Key 用户的访问密钥,用于在请求中验证身份user123
Secret Key 用户的私钥,用于生成签名 secure$ecret
请求示例 发送到Kong的请求示例
请求方法 HTTP请求方法,如GET、POST等GET
请求路径 请求的路径,可以是API的具体路径/api/resource
请求头部 请求中必须包含的验证信息
XMyAccessKey 用户的Access Keyuser123
Host 请求的主机名example.com
Date 请求的日期,用于生成签名Tue, 15 Nov 2023 08:12:31 GMT
Signature 请求签名,由Secret Key和请求信息生成generated_signature
签名生成 如何使用Secret Key生成签名
签名算法 使用的签名算法,如HMACSHA256 HMACSHA256
签名的具体内容,通常包括请求方法和请求路径等GET /api/resource
签名步骤 生成签名的步骤
1. 创建待签名的字符串 方法 + 日期 + 请求路径GETTue, 15 Nov 2023 08:12:31 GMT/api/resource
2. 使用Secret Key和签名算法生成签名 HMACSHA256(“secure$ecret”, 待签名字符串)generated_signature
Kong处理流程 Kong接收到请求后的处理流程
1. 解析请求头部 提取XMyAccessKey和Signature
2. 验证签名 使用存储的Secret Key验证签名是否正确
3. 授权决策 如果签名正确,允许请求通过;否则拒绝

这个介绍提供了一种结构化的方式来查看和配置前端服务Kong中的AKSK验签过程,在实际部署时,需要将示例中的值替换为具体的值,并确保安全地存储和传输Access Key和Secret Key。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表