Keycloak OpenID Connect redirect_uri 行为不一致

Keycloak OpenID Connect redirect_uri 行为不一致

我在本地计算机上通过 docker 部署了 Keycloak 22.0.5。我有一个自定义 OpenID 客户端,其访问权限配置如下:Keycloak 访问设置页面配置为:根 URL - 空、主页 URL - http://localhost:8000、有效重定向 URI - http://localhost:8000/*、有效注销后重定向 Uris - +、Web 来源 - 空、管理 URL - 空 我不想使用密码授予,而是使用pkceauthorization_code变体)授予(与account-console它的方式相同)。

这是我发送给服务器进行身份验证的请求:

GET localhost:2137/realms/SpringKeycloak/protocol/openid-connect/auth?
    client_id=login-user
    &redirect_uri=http%3A%2F%2Flocalhost%3A8000
    &state=af08ea5a-9d4d-4850-9491-483809f2c991
    &response_type=code
    &scope=openid
    &code_challenge=Jqd4T8zNX438YOgW-99eFp_7fbMkDb1Tyu0TtU41x3A
    &code_challenge_method=S256
    &grant_type=pkce

现在,事情是这样的,这个工作得很好,但是当我尝试获取令牌时,使用相同的方法redirect_uri

POST localhost:2137/realms/SpringKeycloak/protocol/openid-connect/token

code=ed24eb7c-ef7e-4c51-b545-c59e0717f6a1.54c25efe-7721-4d81-9f64-99493ee365b9.a2b82e1f-84c7-464f-a555-dcea26162e5a
&grant_type=authorization_code
&client_id=login-user
&redirect_uri=http%3A%2F%2Flocalhost%3A8000
&code_verifier=0a844a24ec41aeb96bc016d8d488794802a066378bbfd35bb8adcf55

然而它声称,该 URL 现在无效:

{
    "error": "invalid_grant",
    "error_description": "invalid parameter: redirect_uri"
}

我不知道是什么导致了这种现象。我查看了配置和互联网,但找不到可能导致这种情况的任何其他设置。

我也尝试将第二个请求中的授权类型更改为pkce与第一个请求相同的方式,但它只会引发unsupported_grant_type

相关内容