设置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"}我通过硬编码声称与我的client_id相同的aud来解决这个错误消息。有没有更好的办法?
这是我的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"发布于 2018-12-05 16:07:37
对于最近的密钥罩版本4.6.0,客户id显然不再自动添加到访问令牌的受众字段'aud‘中。因此,即使登录成功,客户端也会拒绝该用户。为了解决这个问题,你需要为你的客户配置受众(比较文档2)。
在密钥罩中配置访问群体
在my-app设置中的
“添加到分配的默认客户端服务
如果您有多个客户端,请对其他客户端重复上述步骤,并添加good-service作用域。这背后的意图是隔离客户端访问。颁发的访问令牌仅对目标受众有效。这在Keycloak的文档1,2中有详细的描述。
指向keycloak文档最新主版本的链接:
带有git标签的链接:
发布于 2019-04-28 07:28:42
这是由一个错误引起的:https://issues.jboss.org/browse/KEYCLOAK-8954
bug报告中描述了two workarounds,这两个are看起来与accepted answer here的功能基本相同,但可以应用于客户端作用域role,因此您不必将它们分别应用于每个客户端。
https://stackoverflow.com/questions/53550321
复制相似问题