Go 配置KeyClope以在id令牌中包含at_哈希声明

Go 配置KeyClope以在id令牌中包含at_哈希声明,go,keycloak,openid-connect,Go,Keycloak,Openid Connect,我目前正在使用KeyClope 9.0.0。当使用代码流进行身份验证并交换此代码时,我收到的id令牌没有at_hash声明 如何配置keydape以在id令牌中包含at_hash声明 背景: 我使用的是一个“经典”服务器端渲染(SSR)程序,一个机密客户端。 我正在向本地http api发送请求。但我也有一个棱角分明的客户。SSR是一个Go程序,使用github.com/coreos/Go-oidc。 需要身份验证的呈现页面通过重定向uri将访问者重定向到KeyClope并返回。 由于访问者已登

我目前正在使用KeyClope 9.0.0。当使用代码流进行身份验证并交换此代码时,我收到的id令牌没有
at_hash
声明

如何配置keydape以在id令牌中包含
at_hash
声明

背景:

我使用的是一个“经典”服务器端渲染(SSR)程序,一个机密客户端。 我正在向本地http api发送请求。但我也有一个棱角分明的客户。SSR是一个Go程序,使用github.com/coreos/Go-oidc。 需要身份验证的呈现页面通过重定向uri将访问者重定向到KeyClope并返回。 由于访问者已登录,因此会话中存在其id令牌,并且我也传递访问令牌。但是,id令牌在\u hash声明中没有
,因此访问令牌验证失败

我也有这个网站的移动网络版本,在Angular中,它在登录后发送一个承载访问令牌。此应用程序使用代码流+pcke

两者都应该能够发送经过身份验证的请求,但由于我使用的是Go可用的唯一oidc客户端库,因此需要id令牌中存在
at_hash
声明才能验证访问令牌。包当前不支持内省端点

id令牌和访问令牌都从IDP返回。但两者都没有
at\u散列
声明。

根据
at\u散列
,只有在发出访问令牌时才是强制性的。
确保您使用的是
response\u type=id\u token token
而不是
response\u type=id\u token

就像我写的那样,它使用的是代码流,而不是隐式流。它还返回id token和access token,而不返回
at\u hash
然后使用
response\u type=code id\u token token
请检查混合流的示例(
code-id\u-token-token
)不受此客户端库的支持。您链接的规范描述了混合流(code+隐式)。隐式流未使用,kc客户端也已禁用。我的问题是关于强制KeyClope在id令牌中包含
at_hash
声明。不过,感谢您的提示。目前似乎没有办法做到这一点。Pawel.s.编写的是混合流,这意味着隐式流,在我的客户端中被禁用配置。当使用coreos/go oidc时,除了代码流之外没有其他方法。我针对这个特定问题的解决方案是分离RESTful http api,并在其前面添加一个KeyClope网关守护程序。对于SSR网站,我只会检查会话值是否存在。由于e无法使用coreos/go oidc验证访问令牌的真实性。