具有自定义授权的 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 响应
ASP.NET Core 使用 JWT 自定义角色/策略授权需要实现的接口