如何解决结合使用Kong API Gateway密钥验证插件和受密钥斗保护的rest api
我的设置如下:
- 其他API(春季启动)
- 前端应用程序(Angular 8)
- 身份验证服务器(密钥斗篷)
当前情况:
- 用户在角度登录页面中输入用户名和密码。
- Angular发出POST请求,并从keycloak服务器获取访问令牌,刷新令牌等。
- 在所有随后的休息api服务器请求(仅承载)中,访问令牌都将传入
标头为“授权:承载
” - Rest api会查看用户的角色,并以此返回所需数据或引发403 Forbidden异常。
我想要的东西: 要使用api密钥对外部用户进行身份验证,然后向其添加速率限制。为此,我正在使用Kong API Gateway。对于通过angular应用程序登录的内部或受信任用户,现有访问令牌流应该起作用。
问题: 在Kong中使用apikey时,它确实通过了Kong的身份验证,但是其余的api服务器仍需要访问令牌,因此会收到401未经授权的错误。
解决方法
我找到了解决方案。基本上,您需要配置匿名使用者,并使用Kong的key-auth插件(基于api-key的安全性)和openid-connect插件(基于keycloak的安全性)来配置enable multiple authentication methods。
对于那些没有Kong Enterprise的用户,由于openid-connect插件不是开源的,因此您可以仅配置启用了匿名访问的key-auth插件,然后在其余应用程序中处理基于keycloak的身份验证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。