具有自定义授权的 JWT 和 KONG

Posted

技术标签:

【中文标题】具有自定义授权的 JWT 和 KONG【英文标题】:JWT and KONG with custom authrizations 【发布时间】:2017-08-02 04:21:30 【问题描述】:

我在 KONG 上完成了这个教程 https://getkong.org/plugins/jwt/

我了解 JWT 和授权概念。我已经使用 Spring Boot 对 JWT 进行了原型设计,我可以在其中放置自己的键值,例如 "authorizations":"role_admin, role_user"。

在 Spring Boot 中很容易做到这一点,但我无法找到有关如何使用 KONG 做到这一点的信息。有人知道吗?

【问题讨论】:

【参考方案1】:

Kong 社区版只能处理身份验证过程(授予或拒绝客户访问)。

授权过程(给定客户可以在您的应用程序中执行的操作)由您的应用程序或 https://getkong.org/plugins/ee-oauth2-introspection/ oauth2 内省插件处理,该插件仅是企业版

如果用户通过了身份验证或kong代理的原始令牌头,您可以根据X-Consumer-Username请求头编写自己的授权服务器

希望有帮助

【讨论】:

【参考方案2】:

kong jwt 插件不支持向上游 api 发送自定义负载参数。但是,您似乎可以使用此插件(我尚未对其进行测试):

https://github.com/wshirey/kong-plugin-jwt-claims-headers

更新:

如果您将 Kong 设置为转发所有标头,您将获得带有 jwt 令牌的原始授权标头。因此,您可以对 jwt 令牌进行 base64 解码,并在服务中手动提取您需要的声明/有效负载参数。

【讨论】:

以上是关于具有自定义授权的 JWT 和 KONG的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jwt.io 手动验证从自定义授权服务器获得的令牌?

AWS 无服务器自定义 jwt 授权方 lambda 设置 cors 响应

WebApi 2始终使用自定义JWT令牌返回401授权

ASP.NET Core 使用 JWT 自定义角色/策略授权需要实现的接口

WebApi 2 在使用自定义 JWT 令牌进行授权时总是返回 401

AWS API Gateway 自定义授权方有用吗?