首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >香港API网关中的自定义身份验证服务

香港API网关中的自定义身份验证服务
EN

Stack Overflow用户
提问于 2017-08-11 01:06:32
回答 2查看 8.5K关注 0票数 6

我们目前正在分析微服务的API网关,Kong是可能的候选者之一。我们发现Kong支持几个插件进行身份验证,但都是基于存储在Kong数据库中的用户。我们需要将此职责委派给我们的自定义auth HTTP服务,并且不希望将这些用户添加到API网关数据库中。

EN

回答 2

Stack Overflow用户

发布于 2017-09-17 16:00:17

可以使用一些代码来实现这一点,而不是使用API插件;实际上,您需要实现一个授权服务器,它通过管理(8001)端口与Kong对话,并授权使用外部给定的OpenID。

简而言之,它如下所示(这里是授权码授权):

  • 不是直接向Kong请求令牌,而是向授权服务器发出请求以获取特定接口的令牌(可以是硬编码的,也可以是参数化的,这取决于您的需要),并在调用中包含需要访问的应用程序的客户端ID (实际上您实现了/authorize端点)
  • 授权服务器现在需要使用您需要的任何IdP进行身份验证,这样授权服务器
  • 中的已验证用户现在可以通过Kong管理API获取您的应用程序接口的配置码,并命中您的Kong网关的/oauth2/authorize端点(端口8443)。包括供应密钥;请注意,您可能需要通过Admin API查找应用程序客户端id的客户端机密,以使此工作
  • 包括客户端id、客户端机密、经过身份验证的用户id (来自您的自定义IdP),以及可选的范围在POST/oauth2/authorize;这些值将被添加到使用访问令牌的后端调用中,该应用程序现在可以使用授权码来声明访问令牌,
  • Kong将提供给您一个授权码,您可以通过302重定向将该授权码传递回应用程序(您需要阅读有关此操作的OAuth2规范)
  • 应用程序使用其客户端和密钥以及授权码,从Kong的端口8443 ( URL /oauth2/token.

)获取访问令牌(和刷新令牌

这听起来比实际情况更复杂。我为基于Kong和node.js的wicked.haufe.io做了这件事,并向Kong添加了一个开源开发人员门户。下面的两个项目中有很多代码,它们展示了可以做什么来与任何IdP集成:

我们目前正在调查是否也可以添加一个默认的授权服务器到wicked,但现在你必须自己创建一个。

也许这会有帮助,马丁

票数 6
EN

Stack Overflow用户

发布于 2017-08-11 11:48:14

查看孔令行的OpenID连接插件getkong.org/plugins/openid- Connect -rp - it可以连接到外部身份和认证系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45619686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档