gpt4 book ai didi

Keycloak-gatekeeper: 'aud' 声明和 'client_id' 不匹配

转载 作者:行者123 更新时间:2023-12-03 15:06:25 25 4
gpt4 key购买 nike

设置 aud 的正确方法是什么?声称避免以下错误?

unable to verify the id token   {"error": "oidc: JWT claims invalid: invalid claims, 'aud' claim and 'client_id' do not match, aud=account, client_id=webapp"}

我通过硬编码 aud 解决了这个错误消息。声称和我的 client_id一样.有没有更好的办法?

这是我的 docker-compose.yml :
version: '3'
services:
keycloak-proxy:
image: "keycloak/keycloak-gatekeeper"
environment:
- PROXY_LISTEN=0.0.0.0:3000
- PROXY_DISCOVERY_URL=http://keycloak.example.com:8181/auth/realms/realmcom
- PROXY_CLIENT_ID=webapp
- PROXY_CLIENT_SECRET=0b57186c-e939-48ff-aa17-cfd3e361f65e
- PROXY_UPSTREAM_URL=http://test-server:8000
ports:
- "8282:3000"
command:
- "--verbose"
- "--enable-refresh-tokens=true"
- "--enable-default-deny=true"
- "--resources=uri=/*"
- "--enable-session-cookies=true"
- "--encryption-key=AgXa7xRcoClDEU0ZDSH4X0XhL5Qy2Z2j"
test-server:
image: "test-server"

最佳答案

在最近的 keycloak 版本 4.6.0 中,客户端 ID 显然不再自动添加到访问 token 的受众字段“aud”中。
因此,即使登录成功,客户端也会拒绝用户。
要解决此问题,您需要为您的客户配置受众(比较文档 [2])。

在 Keycloak 中配置受众

  • 添加领域或配置现有的
  • 添加客户端 my-app 或使用现有的
  • 转到新添加的“客户端范围”菜单 [1]
  • 添加客户范围“优质服务”
  • 在“优质服务”转到 Mappers 选项卡的设置中
  • 创建协议(protocol)映射器'my-app-audience'
  • 名称:my-app-audience
  • 选择映射器类型:受众
  • 包含的客户受众:my-app
  • 添加到访问 token :在
  • 在“客户端”菜单中配置客户端 my-app
  • 我的应用设置中的客户端范围选项卡
  • 将可用的客户端范围“good-service”添加到分配的默认客户端范围

  • 如果您有多个客户,请为其他客户重复这些步骤并添加优质服务范围。
    这背后的目的是隔离客户端访问。颁发的访问 token 仅对目标受众有效。
    这在 Keycloak 的文档 [1,2] 中有详细描述。

    链接到 keycloak 文档的最新主版本:
  • [1] https://github.com/keycloak/keycloak-documentation/blob/master/server_admin/topics/clients/client-scopes.adoc
  • [2] https://github.com/keycloak/keycloak-documentation/blob/master/server_admin/topics/clients/oidc/audience.adoc

  • 带有 git 标签的链接:
  • [1] https://github.com/keycloak/keycloak-documentation/blob/f490e1fba7445542c2db0b4202647330ddcdae53/server_admin/topics/clients/oidc/audience.adoc
  • [2] https://github.com/keycloak/keycloak-documentation/blob/5e340356e76a8ef917ef3bfc2e548915f527d093/server_admin/topics/clients/client-scopes.adoc
  • 关于Keycloak-gatekeeper: 'aud' 声明和 'client_id' 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550321/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com