我们目前正在为我们的微服务分析API网关,Kong是可能的候选者之一。我们发现Kong支持几个用于身份验证的插件,但所有插件都基于存储在Kong数据库本身的用户。我们需要将此职责委托给我们的自定义身份验证HTTP服务,并且不希望在API网关数据库中添加这些用户。
答案 0 :(得分:3)
可以使用一些代码执行此操作,而不是使用OpenID连接插件;实际上,您需要实现一个授权服务器,该服务器通过Admin(8001)端口与Kong通信,并授权使用外部给定用户ID的API。
简而言之,它如下(此处为授权代码授权):
/authorize
终点)/oauth2/authorize
端点(端口8443),包括配置密钥;请注意,您可能还需要通过Admin API查找应用程序客户端ID的客户端密钥才能使其正常工作POST
至/oauth2/authorize
中包含客户端ID,客户端密码,经过身份验证的用户ID(来自您的自定义IDP)和最佳范围;这些值将使用应用程序现在可以使用授权码声明的访问令牌添加到API的后端调用中/oauth2/token
获取访问令牌(和刷新令牌)。听起来比最终更复杂。我为wicked.haufe.io做了这个,它基于Kong和node.js,并为Kong添加了一个开源开发者门户网站。以下两个项目中有很多代码可以显示可以与任何IdP集成的内容:
我们目前正在调查我们是否也可以为恶人添加默认授权服务器,但现在您必须自行滚动/分叉。
也许这有帮助,马丁
答案 1 :(得分:0)
查看Kong的OpenID Connect插件getkong.org/plugins/openid-connect-rp - 它连接到外部身份和身份验证系统。