【问题标题】:Using Kong API Gateway key-auth plugin with keycloak protected rest apis将 Kong API Gateway 密钥认证插件与 keycloak 保护的 rest api 一起使用
【发布时间】:2020-08-11 04:27:20
【问题描述】:

我的设置如下:

  1. Rest API(Spring 启动)
  2. 前端应用程序(Angular 8)
  3. 身份验证服务器(Keycloak)

当前情景:

  1. 用户在 Angular 登录页面中输入用户名和密码。
  2. Angular 发出 POST 请求并从 keycloak 服务器获取访问令牌、刷新令牌等。
  3. 在所有后续对rest api服务器的请求(仅是承载)中,都传入了访问令牌 标头为“授权:承载
  4. Rest api 查看用户的角色,并基于此返回所需的数据或引发 403 Forbidden 异常。

我想要什么: 使用 api-key 对外部用户进行身份验证,然后对其添加速率限制。为此,我正在使用 Kong API Gateway。对于通过 Angular 应用程序登录的内部或受信任用户,现有的访问令牌流应该可以工作。

问题: 在 Kong 中使用 apikey 时,它确实通过了 Kong 的身份验证,但其余 api 服务器仍然需要访问令牌,因此会得到 401 未授权错误。

【问题讨论】:

    标签: spring-boot keycloak openid-connect kong kong-plugin


    【解决方案1】:

    我找到了解决方案。基本上你需要配置一个匿名消费者和enable multiple authentication methods,使用 Kong 的 key-auth 插件实现基于 api-key 的安全性,使用 openid-connect 插件实现基于 keycloak 的安全性。

    对于那些没有 Kong Enterprise 的人,由于 openid-connect 插件不是开源的,您可以只配置启用匿名访问的 key-auth 插件,然后在您的 REST 应用程序中处理基于 keycloak 的身份验证。

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 2018-07-04
      • 2018-07-17
      相关资源
      最近更新 更多