如何使用 kong api 网关实现 oauth2?

     2023-03-14     47

关键词:

【中文标题】如何使用 kong api 网关实现 oauth2?【英文标题】:How do I implement oauth2 with kong api gateway? 【发布时间】:2020-04-16 04:22:50 【问题描述】:

我想为在 laravel 上运行的一堆微服务实现一个 api 网关。在网关前面有一个角度客户端,用户必须使用用户名和密码登录。这个想法是用户将带有凭据的请求发送到网关,网关将其转发到身份验证服务。如果数据正确,将颁发一个令牌,该令牌将包含在每个进一步的请求中。

我想我会用 kong 和 oauth2 插件来实现网关。我已经查看了他们的文档https://docs.konghq.com/hub/kong-inc/oauth2/#resource-owner-password-credentials,但我不太了解流程。

Angular 客户端是否必须在第一次请求时直接与身份验证服务通信?如果是这样,身份验证服务是否需要自己的 url?我认为如果所有请求都通过网关会更有意义,不是吗?

谢谢!

【问题讨论】:

这真的取决于你的实现,但 Angular 应用程序通常是 SPA。 SPA 应用程序应该使用OpenID Connect Code Flow with PKCE,它应该由 SPA 应用程序本身实现(例如github.com/damienbod/angular-auth-oidc-client)。如果没有非标准的应用程序/网关黑客攻击,身份验证代理(您的问题中的 kong)将无法向 SPA 应用程序提供用户身份。 【参考方案1】:

据我了解,您的 Angular 应用程序可以将用户名:密码发送到 kong 网关,这会将请求代理到您的身份验证服务。您可以验证用户在您的身份验证服务中是否合法。

1) 如果合法,则向 kong 的 oauth2 插件提供的 /oauth2/token 端点发出请求。 Kong 会将您的身份验证服务返回一个 access_token,您可以将其返回给用户

2) 如果不合法,则抛出错误。

Angular 客户端是否必须在第一次请求时直接与身份验证服务通信?

只有当您的身份验证服务是第三方服务时,您才可以这样做。

【讨论】:

Kong + Keycloak + OAuth:jwt-keycloak 还是 oauth2 插件?

...auth2plugin?【发布时间】:2021-02-0614:15:15【问题描述】:我使用Kong作为我的服务的API网关,这些服务应该使用客户端凭据流进行OAuth保护。现在,我使用jwt-keycloak插件实现了这个。一切都很好,我向Keycloak请求了一 查看详情

开源api网关系统(kong教程)入门到精通

参考技术A1、Kong的简介和安装2、使用Docker安装Kong3、开源API网关:KONG入门培训1、配置详解2、代理详解3、身份验证详解4、负载均衡详解5、健康检查和断路器详解6、集群详解7、网络与防火墙详解8、共有LuaAPI详解9、管理API安全... 查看详情

使用带有 KONG API 网关的 cookie 进行 JWT 身份验证

】使用带有KONGAPI网关的cookie进行JWT身份验证【英文标题】:JWTauthenticationusingcookieswithKONGAPIGateway【发布时间】:2018-02-2701:12:03【问题描述】:我们正在使用带有JWT身份验证插件的KongAPI网关实现示例应用程序。正如thread中提到的... 查看详情

使用 Pongo 为用 Lua 编写的自定义 Kong API 网关插件运行测试时如何生成和显示覆盖率

】使用Pongo为用Lua编写的自定义KongAPI网关插件运行测试时如何生成和显示覆盖率【英文标题】:HowtogenerateanddisplaycoveragewhenrunningtestswithPongoforcustomKongAPIGatewaypluginswritteninLua【发布时间】:2021-06-2604:25:33【问题描述】:我正在用Lua... 查看详情

使用 Kong 和 Nginx 部署 Api 网关

】使用Kong和Nginx部署Api网关【英文标题】:ApiGatewaydeploywithKongandNginx【发布时间】:2019-02-1702:32:03【问题描述】:KongApi网关有这个问题--经过所有的配置和测试——我能够成功执行此操作:curl-i-XGET--urlhttp://localhost:8000--header\'Host:... 查看详情

使用公共微服务对 API 网关 (Kong) 进行身份验证

】使用公共微服务对API网关(Kong)进行身份验证【英文标题】:AuthenticatingApiGateway(Kong)WithAPublicMicroService【发布时间】:2018-03-1015:19:40【问题描述】:我们有一个可通过互联网公开访问的网络应用程序。此应用程序在包含应用程序... 查看详情

api网关kong使用指南(四)——hmac-auth插件配置

...步骤是:虽然插件已经生效,但没有相关证书是无法有效使用的,所以此时要添加消费者和证书。此处步骤相对简单。系列链接 查看详情

api网关kong使用指南(六)——支持https

...考技术AKong支持HTTP和HTTPS两种协议,一般在开发环境中只使用HTTP协议即可,但在生产环境中最好还是使用HTTPS协议。默认情况下,Kong开通了8000和8443端口,它们分别对应HTTP和HTTPS的转发路由,只要配置好service和route,这两个端口... 查看详情

Kong Api 网关集群

...均衡器,你能介绍一个免费的,我可以在我的Kong节点前使用吗?2)我仍然不知道在不同的虚拟机或Docke 查看详情

kong网关(代码片段)

1.kong简介kong网关基于nginx,但是比nginx更加强大,nginx一般用来实现反向代理和负载均衡,但是nginx无法实现动态配置,也就是说如果我们扩展了机器或者添加路由配置,需要手动修改nginx的配置文件并重启nginx... 查看详情

envoy实现.net架构的网关集成identityserver4实现oauth2认证

...(token),用来代替密码,供第三方应用使用。而IdentityServer4就是一个开源 查看详情

在 Kong API 网关中使用 .jks 密钥对 JWT 令牌进行身份验证

】在KongAPI网关中使用.jks密钥对JWT令牌进行身份验证【英文标题】:AuthenticatingJWTtokenwith.jkskeyinKongAPIGateway【发布时间】:2021-09-0615:34:16【问题描述】:我正在使用SpringBoot,我在其中创建了一个JWT令牌并使用.jks私钥进行签名。现... 查看详情

kong个人分享(api网关)

...h.png)##简介Kong是在客户端和(微)服务间转发API通信的API网关和API服务管理层,通过插件扩 查看详情

kong系列--kong101(代码片段)

...的兴起,实践过程中API数量呈现爆发式增长,对外、对内如何治理?网关是针对这一系列疑问的部分回应,才疏学浅,只能留下一些烂笔头。目前API网关实现比较多,Kong、Orange、Traefik、Tyk、Istio等。Kong就是其中一个开源的API网... 查看详情

kong网关配置开源waf组件

...网关配置指南 ​​https://blog.51cto.com/waringid/5793828​​使用Kong和Konga管理微服务和API ​​https://blog.51ct 查看详情

kong API网关的多个请求转换器

...rkongAPIgateway【发布时间】:2019-10-2523:57:00【问题描述】:使用RequestTransformer插件,我们将查询字符串转换为多个标题。我们的所有服务都在全球范围内完成了这项工作。我们还希望对服务的子集进行其他特定的转换。从我读到的... 查看详情

30分钟通过kong实现.net网关

...,内部有大量的Lua库。其中ngx_lua_moudule使开发人员能使用Lua脚本调用Nginx模块。Kong是一个Openrestry程序,而Openrestry运行在Nginx上,用Lua扩展了nginx。所以可以认为Kong=Openrestry+nginx& 查看详情

使用 OAuth2 的 API 网关的客户端凭据 [关闭]

】使用OAuth2的API网关的客户端凭据[关闭]【英文标题】:ClientcredentialsforaAPIGatewayusingOAuth2[closed]【发布时间】:2020-12-2207:07:43【问题描述】:我正在尝试了解使用OAuth2.0的微服务架构。我已经了解OAuth2.0的工作原理。我看到其中一... 查看详情