当前位置: 首页 > 知识库问答 >
问题:

香港API网关

蓬宾白
2023-03-14

我们使用keycloak来处理API网关中的身份验证(客户端/秘密)。

Kong api服务使用konnect托管插件引用KeyClope来验证客户端凭据并返回承载令牌。

未来对其他endpoint的调用将使用oauth2内省来通过KeyClope内省验证承载令牌

但是,当我通过Kong api gateway进行身份验证时,它会返回一个承载令牌,但该令牌无法自省。

如果我直接授权给KeyClope,则承载令牌用于内省。

eg

代币来源:http://kongapigateway.domain/getOAuthToken

  • 注意:我们尚未在香港api网关上设置ssl

返回:

{"access_token":"ey..ZiUQyw","expires_in":900,"refresh_expires_in":0,"token_type":"Bearer","not-before-policy":0,"scope":"email profile"}

在香港调用使用内省的api终结点失败:http://kongapigateway.domain/bookings

{
    "error_description": "The access token is invalid or has expired",
    "error": "invalid_token"
}

直接调用KeyClope内省也会失败:https://keycloak.domain/auth/realms/{Realms}/protocol/openid connect/token/introspect

{
    "active": false
}

但是,如果我直接从KeyClope服务器获取令牌:https://keycloak.domain/auth/realms/{Realms}/protocol/openid connect/token

{"access_token":"eyJhb...4lT8w","expires_in":900,"refresh_expires_in":0,"token_type":"Bearer","not-before-policy":0,"scope":"email profile"}

令牌适用于两个endpoint:http://kongapigateway.domain/bookings和https://keycloak.domain/auth/realms/{Realms}/协议/openid连接/令牌/内省

那么,为什么内省对第一个场景中返回的令牌不起作用呢?

共有1个答案

宁欣怿
2023-03-14

您可以通过将Keycloak的前端网址设置为公共网址来解决这个问题。详情请参考我对另一个类似问题的回答。

 类似资料:
  • 我想使用Kong作为所有上游服务的API网关。我想使用API密钥,以便我的客户可以使用它来使用他们被允许使用的一些API。 有一个用于管理API密钥的插件:https://docs.konghq.com/hub/kong-inc/key-auth/ 但我想知道是否可以将属性添加到某个API键或将其链接到某个配置。 让我举例说明: 我有3个API API 1 API 2 API 3 在香港API网关

  • 我可以配置Kong的速率限制插件,以便它在给定API中对每个endpoint实施限制,如下所示: 但是,我想为每个endpoint配置不同的速率限制。例如,我想允许: 使用每IP每秒5个请求的速率限制 这对香港有可能吗?我看到了一个与此相关的开放问题,但是否有任何解决方法?

  •  以下为面试问题: 1.你想从我们项目学到些什么? 2.你怎么理解speculative design? 3.为什么要用Maxmsp/Jitter? 4.你觉得Maxmsp/Jitter好用吗? 5.有什么要问的吗? 6.你在中国吗? 7.现在在做什么? 面试的是一个日本老师,他是这个art program的负责人,感觉他也不是很爱说话,就是有点那种软件技术用的很厉害,但是性格比较内向,不爱跟人沟

  • 1.介绍你的项目的动机 2.哪些是个人项目,哪些是学校作业(感觉港理非常了解且在意国内作品集培训现状) 3.针对我的学校作业的提问 3.1为什么做这个主题 3.2在这个过程怎么验证你的项目有效对于目标的用户 3.3测试过程发现了什么问题,怎么改进 3.4其他人怎么评价你的项目 3.5看你参加了很多比赛,为什么 4.你为什么想来香港学习sd,这个崭新的专业 5.你怎么定义服务设计 6.和你的本科相比

  • 我的expo go应用程序出错。 错误: 未捕获的错误:java.net.SocketTimeout异常:10000ms后无法从/192.168.100.2(端口39440)连接到/192.168.100.10(端口19000)。

  • 香山是一款开源的高性能 RISC-V 处理器,基于 Chisel 硬件设计语言实现,支持 RV64GC 指令集。 在香山处理器的开发过程中,其团队使用了包括 Chisel、Verilator 等在内的大量开源工具,实现了差分验证、仿真快照、RISC-V 检查点等处理器开发的基础工具,建立起了一套包含设计、实现、验证等在内的基于开源工具的处理器前端敏捷开发流程。 示例视频 香山的架构代号以湖命名。第