无法从Keycloak验证令牌

问题描述 投票:0回答:1

我正在尝试验证从密钥斗篷收到的令牌。我已经创建了TestClient作为客户端,将TestRealm作为领域,将“ user”作为用户。验证收到的令牌时,我正在命中此端点-http://localhost:8080/auth/realms/TestRealm/protocol/openid-connect/userinfo

在响应中,我没有收到实际的用户详细信息,而是每次都收到此响应:

{
    "sub": "xxxx-xxxx-xxxx-xxxx-xxxxxx",
    "email_verified": false,
    "preferred_username": "service-account-testclient"
}

有人可以解释吗?

keycloak bearer-token keycloak-services
1个回答
0
投票

我不会说您正在执行令牌验证。令牌验证需要令牌签名验证(通常针对使用的领域公共密钥)。

您只是使用auth头中的令牌来调用标准OIDC用户信息端点,因此Keycloak必须执行令牌验证作为请求处理的一部分。 Userinfo响应取决于您的Keycloak客户端配置(映射器,范围等)。

因此,当您获得带有http代码200的userinfo响应时,令牌必须有效。但是不要将userinfo用于“令牌验证”-它将增加不必要的Keycloak加载,这是一种缓慢的方法,未为此指定userinfo端点,....执行脱机,无状态,快速的令牌签名验证。它应该是所有OIDC库的标准功能。

© www.soinside.com 2019 - 2024. All rights reserved.