PepperYan / kong-plugin-auth-redis

基于redis的Kong网关高性能鉴权插件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kong-plugin-auth-redis/ key-auth-redis

This is a kong plugin tested under 300,000 rps circumstance.

十万级别并发请求验证的Kong网关redis权限认证组件

简介

key-auth with redis

如何使用

本插件基于 Kong 10 版本开发. 使用前请安装Kong 10, 然后把key-auth-redis 复制到 ${KongPath}/plugins 目录下, 并配置kong-cluster.conf (在custome_plugins 中添加key-auth-redis插件, 如要使用限流功能, 请添加general-limiting插件)

功能

  1. 可连接单个redis;
  2. 根据redis查询得到key(token);
  3. 保存key到kong本地数据库;(取消)

备选功能

  1. 为每一个consumer创建一个rate-limiting插件以限制用户的访问速率;

使用步骤

  1. 通过kong api或者kong dashboard,为指定API注册插件key-auth-redis
  2. 设置相应的配置
名称 类型 默认值 说明
key_names string function 自定义api_key的名称(一般设为token)
hide_credentials boolean false 一个可选的布尔值,指示插件将凭据隐藏到上游API服务器。在代理请求之前,它将被Kong删除。
anonymous string `` 如果身份验证失败,则可以使用可选的字符串(消费者uuid)值作为“匿名”消费者。如果为空(默认),则请求将失败并发送身份验证失败4xx
redis_host string `` redis服务器IP地址(必须)
redis_port number 6379 redis服务器端口
redis_password string `` redis密码
redis_timeout number 2000 redis超时时间(ms)
rate_limiting boolean false 指定是否在创建consumer的同时,创建与其相关的rate_limiting插件
apiname_uri_lastest boolean false 指定rate-limiting插件所作用的api_name为consumer访问的uri的最后一段字符串。例如uri是/key/auth/redis,则api_name=redis
limit_by string consumer 根据类型限制访问速率,类型有consumer, credential, ip
policy string cluster 根据策略配置rate-limiting计数器,策略类型有local, cluster, redis
fault_tolerant boolean true 用于确定请求是否应被代理,即使Kong连接第三方数据存储时遇到问题。如果真正的请求将被代理,无论如何有效地禁用速率限制功能,直到数据存储再次工作。如果为false,那么客户端将看到500错误。
redis_database number 0 redis数据库个数,当只有一个数据库时,只需采用默认值0
second number 从第一次访问算起,一秒限制的次数
minute number 从第一次访问算起,一分钟限制的次数
hour number 从第一次访问算起,一小时限制的次数
day number 从第一次访问算起,一天内限制的次数
month number 从第一次访问算起,一个月内限制的次数
year number 从第一次访问算起,一年内限制的次数
  1. 配置设置成功后,启用插件便能够生效。

About

基于redis的Kong网关高性能鉴权插件


Languages

Language:Lua 100.0%