【问题标题】:keycloak's access token is validated as github access token by oauth2oauth2 将 keycloak 的访问令牌验证为 github 访问令牌
【发布时间】:2021-09-29 13:10:12
【问题描述】:

我有一些需要通过身份验证保护的微服务。所以我使用了 OAuth2 + Keycloak。详细配置可以看这篇博文(Keycloak returns 'Invalid parameter: redirect_uri')。

成功登录后,keycloak 生成一个访问令牌,该令牌被路由到 OAUth2 服务进行验证。不知何故,OAuth2 认为访问令牌来自 github,而不是来自 keycloak。你可以看到日志:

123.28.110.207 - 78368701-f2b3-48c2-8f57-3a77a6b385f0 - - [2021/09/28 03:20:52] grafana.my-domain.com GET - "/oauth2/start?rd=https%3A%2F%2Fgrafana.my-domain.com%2F" HTTP/1.1 "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" 302 419 0.000 [2021/09/28 03:21:06] [internal_util.go:64] GET https://keycloak.org/api/v3/user?access_token=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJvNXViN... [2021/09/28 03:21:06] [internal_util.go:65] token validation request failed: error performing request: Get "https://keycloak.org/api/v3/user?access_token=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJvNXViNgmU66CrcaFozOg": x509: certificate is valid for *.github.com, github.com, not keycloak.org
123.28.110.207 - a4f32698-44f4-463d-831e-93c292fb91ea - dathuynh@my-domain.com [2021/09/28 03:21:06] [AuthSuccess] Authenticated via OAuth2: Session{email:dathuynh@my-domain.com user: PreferredUsername: token:true}
123.28.110.207 - a4f32698-44f4-463d-831e-93c292fb91ea - - [2021/09/28 03:21:05] grafana.my-domain.com GET - "/oauth2/callback?state=rVOsXkFxqswYCI8LhKTCOAUUjP76i8k3ltnqJcoxEDU%3Ahttps%3A%2F%2Fgrafana.my-domain.com%2F&session_state=36f8da18-6477-4a72-a7d2-10aadc5a0679&code=b9bbeb85-45bf-4fb5-ad31-cd6a59fc955f.36f8da18-6477-4a72-a7d2-10aadc5a0679.9f5b720c-0be6-44f0-946f-62e34ca0e5ec" HTTP/1.1 "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" 302 63 0.955
123.28.110.207 - a25fe783-0e8f-48de-8040-80e77c98d35b - dathuynh@my-domain.com [2021/09/28 03:21:06] grafana.my-domain.com GET
- "/" HTTP/1.1 "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" 404 19 0.000
123.28.110.207 - c5eeb805-c532-401b-aed4-d462b8b26d11 - dathuynh@my-domain.com [2021/09/28 03:21:07] grafana.my-domain.com GET
- "/" HTTP/1.1 "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" 404 19 0.000

我可能会错过 Keycloak 配置中的某些内容,但我真的不知道。任何建议将不胜感激。

[UPDATE] 我找到了问题,traefik ForwardAuth 中间件的配置地址错误。您可以在 OAuth2 中看到错误日志,但并不重要。有兴趣的可以在我之前的帖子中找到解决方法。

【问题讨论】:

    标签: docker github oauth-2.0 oauth keycloak


    【解决方案1】:

    这是在keycloak.org 配置的 TLS 服务器证书的问题。但此外,这似乎是您软件中错误配置的验证 URL,除非您实际控制或信任 keycloak.org,并且您的令牌是由在该域上运行的服务器颁发的。

    【讨论】:

    • 我错过了 oauth 中的验证 url 配置,因此导致此错误。但是在我修复它之后,oauth 仍然无法验证 URL,它显示 404 错误{"error":"invalid_request","error_description":"Token not provided"}
    猜你喜欢
    • 2018-06-24
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 2015-07-16
    • 2017-08-03
    • 2018-07-17
    • 1970-01-01
    • 2020-10-27
    相关资源
    最近更新 更多