在使用Keycloak的REST身份验证时,我的id_token为null(服务器端)。要连接到应用程序,我使用以下URI:文档中提供的http://localhost:port/auth/realms/{name}/protocol/openid-connect/token
(使用相应的格式params grant_type,username,password,...请参阅here)。作为回应(客户端),我可以检索 access_token 和 id_token 。然后,我在HTTP标头中使用“Bearer”授权与服务器讨论。使用我的自定义客户端时, id_token 在服务器端为空。
有人能解释一下为什么吗?
(只是要清楚,通过使用keycloak身份验证页面,一切都运行良好)
答案 0 :(得分:1)
似乎 id_token 仅在使用GUI身份验证界面时使用。为了解决我的问题,我将自定义元数据添加到 access_token ,然后将所有对 id_token 的引用(在服务器端)替换为 access_token 。通过这样做,应用程序与OAuth2协议完全兼容。