HTTP and HTTPS with keycloack + spring



我正在尝试使用KeyCloak保护我的应用程序。
我将Angular用于前端和弹簧靴作为后端。

仅使用http,一切正常,问题是,如果我想沿http侧面使用https,我对后端遇到错误的错误,例如:

o.k.a.BearerTokenRequestAuthenticator : Failed to verify token
org.keycloak.common.VerificationException: Invalid token issuer. Expected 'http://myDomain/auth/realms/realmName', but was 'https://myDomain/auth/realms/realmName'

在我的属性文件中,我确实有:keycloak.auth-server-url,它指向http://my-keycloak/auth

是否有一种方法可以用keycloak支持HTTP和HTTP?

,如果您使用的是keycloak libs,这是不可行的。当我使用KeyCloak时,我遇到了相同的流程。有人认为为什么甚至在您的安全模块上使用HTTP。我的意思是,当您传递令牌时,您只需要拥有https即可。同意,但随后服务通常需要自己启动呼叫并从内部(安全区域(拨打KeyCloak,他们可以在没有HTTPS的情况下做到这一点(可以使其更快一些。(。

,但后来我无法找到自己的路。我们最终仅使用https。

为什么失败?

随着您的令牌与协议信息签名如果解码令牌,您将找到 ISS 字段。KeyCloak令牌验证器对此字段进行检查。因此,您可以在HTTP和HTTPS上同时运行一台服务器,但是可以为两者之一配置应用程序。

我们该怎么做才能解决此

您可以在令牌验证器模块中进行更改,以忽略协议的检查。这应该有助于您验证令牌。您只需要JWT库和公共密钥。

目前,必须使用与发出令牌的URL相同的URL检查令牌验证。

支持不同URL,适配器中的前后频道请求,将从版本4开始提供。

最新更新