我想向我的服务添加JWT身份验证。 我已完成以下步骤,但JWT身份验证无法正常工作
Consumer
Consumer
Consumer id
和Service
中添加带有Route
的JWT插件但是,我从邮递员那里收到的消息是未经授权。 我使用的是 Key-Auth 和 Basic Auth ,我没有问题。我要找的网站太多,但无法解决我的问题。
我使用 jwt.io 网站生成令牌,但不确定在Payload
部分中填写的信息。
服务/路线中的JWT
消费者中的JWT
网站jwt.io中的JWT (这是令人困惑的部分,停留在有效负载此处)
邮递员
感谢任何人都可以帮助我。
答案 0 :(得分:3)
与您有同样的问题,您执行的每个步骤都是绝对正确的。我也找不到其他地方的解决方案。但是幸运的是,我在再次检查了所有参数以启用JWT插件并为消费者创建JWT之后得到了解决方案。
我发现此参数{
"error": {
"code": "malformed input",
"message": "Filter Messages/any(m: m/PublishedTime ge 2020-03-11T08:19:11.0465793Z) is invalid. Expected '<Item> <operator> <Value>' pattern."
}
}
必须作为config.header_names
输入(输入:D后要记住类型Authorization
)。
尽管Kong文档(https://docs.konghq.com/hub/kong-inc/jwt/)表示该值为可选,默认值为“ Authorization” ,但实际上,如果您将其留空,我意识到Kong无法从标头中提取JWT
答案 1 :(得分:0)
您的jwt令牌中必须存在密钥声明名称(在您的情况下为“ iss”),并且必须配置kong的消费者以期望该名称(在相应消费者的“ key”字段中)
要使令牌有效,令牌中的“ iss”值必须等于创建消费者时输入的“ key”值