0

我的设置如下:

  1. 休息 API(春季启动)
  2. 前端应用程序(Angular 8)
  3. 身份验证服务器(密钥斗篷)

当前情景:

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

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

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

4

1 回答 1

1

我找到了解决方案。基本上,您需要配置匿名消费者并使用 Kong 的 key-auth 插件用于基于 api-key 的安全性和 openid-connect 插件用于基于 keycloak 的安全性来启用多种身份验证方法。

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

于 2020-08-18T05:07:50.917 回答