问题标签 [kong-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - 将 Kong API Gateway key-auth 插件与 keycloak 保护的 rest api 一起使用
我的设置如下:
- 休息 API(春季启动)
- 前端应用程序(Angular 8)
- 身份验证服务器(密钥斗篷)
当前情景:
- 用户在 Angular 登录页面中输入用户名和密码。
- Angular 发出 POST 请求并从 keycloak 服务器获取访问令牌、刷新令牌等。
- 在所有后续对rest api服务器的请求(仅限承载)中,访问令牌作为“授权:承载<ACCESS_TOKEN>”在标头中传递
- Rest api 查看用户的角色,并基于此返回所需的数据或抛出 403 Forbidden 异常。
我想要什么: 使用 api-key 对外部用户进行身份验证,然后对其添加速率限制。为此,我正在使用 Kong API Gateway。对于通过 Angular 应用程序登录的内部或受信任用户,现有的访问令牌流应该可以工作。
问题: 在 Kong 中使用 apikey 时,它确实通过了 Kong 的身份验证,但其余 api 服务器仍然需要访问令牌,因此会收到 401 未授权错误。
kubernetes - 如何在 Kong 的同一服务中使用多个身份验证插件
我希望使用赛普拉斯对一些 kubernetes 应用程序进行端到端测试。通常,我通过 kong 通过 OIDC 访问这些应用程序,但是 cypress 不支持这一点,但通过 API 密钥支持 key-auth。有没有办法设置服务,以便我可以同时使用这两种服务?
kong - 一起使用 Kong 的 key-auth 和 session 插件
我是 Kong 的新手,并且启用了 key-auth 插件的设置。所以当我去https://localhost:32443
我得到{"message":"No API key found in request"}
。如果我指定一个 apikey,我会得到应用程序的主页,但它是空白的。第一个请求以 200 响应成功https://localhost:32443/?apikey=EMCmOc4oE3KjE3CtCoqqDZ9cBM8mEJWjDcOuPJLXPZCmOJbb
- 因为它包含“apikey”。该页面为下载缩小的 JS 和 CSS 而发出的所有后续请求均失败,并显示 401,因为它们不包含“apikey”。我试图将应用程序配置为使用“会话”插件,但不确定这是否正确,或者我只是没有正确配置它。
如果我在新选项卡中手动将“apikey”添加到 favicon 请求中,那么它可以正常加载。我不确定是否有我缺少的配置会自动为所有请求执行此操作?
非常感谢
go - 避免使用 zip golang 包
是否可以避免go build
拉下特定依赖项的 zip 版本?防火墙阻止了它,我可以看到这可能是一个反复出现的主题。我可以使用版本的 git clone 然后将其复制到适当的 pkg 文件夹中,但这有点痛苦。大多数软件包都可以,只是有些似乎在 .zip 的防火墙上触发 403。更改特定 zip 的防火墙策略是一种长期的方法,目前正在寻找一些可以开始的方法。
细节
正在尝试为 kong 构建一个插件。步骤是:
go mod init kong-go-plugin
go get -d -v github.com/Kong/go-pluginserver
go build github.com/Kong/go-pluginserver
下载依赖项之一失败,因为防火墙不允许该 zip 文件。
...github.com/ugorji/go/codec@v1.1.7.zip:403 禁止
更新
其目的不是颠覆公司防火墙策略,任何建议的方法都不应用于这样做。
对于上下文,在这种情况下,防火墙、网络、golang 和 kong 都是实验性的,我需要在更改防火墙策略之前评估解决方案。此外,真实/生产防火墙确实允许这个 zip 包,实验不允许。如果发现被阻止的包确实被认为是一个漏洞,那么需要加强防火墙规则以禁止 github repo。到目前为止,我们只使用go get
withoutmod
并且效果很好,所以我认为建议的方法与以前的方法相比没有增加风险。尽管如此,问题仍然是任何变通方法都不应被用来破坏公司防火墙策略。
keycloak - 访问自省端点,失败:连接被拒绝 kong,keycload,OIDC
当我尝试通过我在 kong 上创建的代理访问端点时,我收到来自服务器的连接被拒绝响应。我用来命中代理的 curl 命令 -
要获得令牌,我使用以下 curl -
Client 协议是开放连接的,访问类型是公共的。
我在 Oidc 插件中完成的配置:
提前致谢
oauth - Kong + Keycloak + OAuth:jwt-keycloak 还是 oauth2 插件?
我使用 Kong 作为我的服务的 API 网关,这些服务应该使用客户端凭据流进行 OAuth 保护。现在,我使用jwt-keycloak插件实现了这一点。一切都很好,我向 Keycloak 请求了一个身份验证令牌,并将其与我的请求一起传递给 Kong。效果很好。
但是也有官方的 OAuth2 插件,我试图找出与 jwt-keycloak 插件相比,OAuth2 插件对我有什么好处?有什么区别,或者什么时候使用这些?
kong - 将Kong插件配置为仅触发一种或多种方法?
有没有办法将插件配置为仅针对给定方法或一组方法触发?
google-kubernetes-engine - 使用 jwks 验证令牌
我正在尝试在 GKE 集群上设置 Kong,以便验证传入的请求。我有一个我想用于验证的 jwks 文件/uri。
我已按照以下步骤...
部署通过服务公开的 hello world 应用程序。
安装 Kong
kubectl apply -f https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/master/deploy/single/all-in-one-dbless.yaml
设置 Kong JWT 插件
创建入口
我看到的下一步是..
创建一个具有公钥的秘密,例如
创建 kong 消费者
这应该一切正常......问题是我没有秘密的公钥。我所拥有的只是 JWKS uri 之类的东西https://YOUR_DOMAIN/.well-known/jwks.json
,我不确定如何使用它进行令牌验证。有没有我需要使用的其他插件。