当前位置: 首页 > 知识库问答 >
问题:

自定义认证层和速率限制

卫弘懿
2023-03-14

我想用Kong来保护一些服务。但是我已经使用了idm进行用户管理。

用户从idm获取令牌,并在请求网关时将其放入头中。为此,我将编写一个插件来实现这一点。然后插件将请求idm。如果允许用户发出此请求,并且用户在idm中拥有用户id,则可以从idm中获得答案。因此,用户仅在idm中注册,而不是作为香港的消费者。如果我现在想使用速率限制,插件描述会说如果基础服务/路由(或不推荐使用的API实体)没有身份验证层,则将使用客户端IP地址,否则,如果配置了身份验证插件,将使用使用者

现在是否可以使用idm中的用户id来限制中的速率限制?

我已经发现:

  • 如何在香港实施外部授权

但是我找不到我问题的答案。


共有1个答案

何华灿
2023-03-14

您可以将config.limit_by设置为标头,将config.header_name设置为自定义名称(配置)。因此插件需要设置一个自定义标头,例如“x-user-id”,以从idm中给出id。你必须确保,你的插件运行在速率限制插件之前。你可以在这里看这个

 类似资料:
  • Django 自带的认证系统足够应付大多数情况,但你或许不打算使用现成的认证系统。定制自己的项目的权限系统需要了解哪些一些关键点,即Django中哪些部分是能够扩展或替换的。这个文档提供了如何定制权限系统的细节。 “认证”后端 在以下情形时可被扩展:当一个 User 模型对象带有用户名和密码时,且需要有别于 Django 默认的认证功能。 你可为你的模型提供可通过 Django 权限系统检查的 定

  • 对于简单的定制操作,我们或许可以通过使用 layers.core.Lambda 层来完成。但对于任何具有可训练权重的定制层,你应该自己来实现。 from keras import backend as K from keras.engine.topology import Layer import numpy as np class MyLayer(Layer): def __init

  • 深度学习的一个魅力在于神经网络中各式各样的层,例如全连接层和后面章节中将要介绍的卷积层、池化层与循环层。虽然Gluon提供了大量常用的层,但有时候我们依然希望自定义层。本节将介绍如何使用NDArray来自定义一个Gluon的层,从而可以被重复调用。 不含模型参数的自定义层 我们先介绍如何定义一个不含模型参数的自定义层。事实上,这和“模型构造”一节中介绍的使用Block类构造模型类似。下面的Cent

  • 速率限制配置参考 filter.http.RateLimit filter.http.RateLimit proto { "domain": "...", "stage": "...", "request_type": "...", "timeout": "{...}" } domain (string, REQUIRED) 需要调用速率限制服务时的域。 stage (uint3

  • 速率限制配置参考。 filter.network.RateLimit filter.network.RateLimit proto { "stat_prefix": "...", "domain": "...", "descriptors": [], "timeout": "{...}" } stat_prefix (string, REQUIRED) 发布统计信息时使用的前缀。

  • 速率限制配置概述。 { "name": "rate_limit", "config": { "domain": "...", "stage": "...", "request_type": "...", "timeout_ms": "..." } } domain (required, string) 调用速率限制服务时使用的域。 stage (opt