KeyCloak 的访问令牌由 OAuth2 验证为 GitHub 访问令牌



我有一些需要通过身份验证来保护的微服务。所以我用OAuth2 + Keycloak。你可以从这篇文章中看到详细的配置(Keycloak返回'无效参数: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配置,但我真的不知道。如有任何建议,我将不胜感激。

(更新)我发现了问题,流量转发中间件有错误的配置地址。您可以在OAuth2中看到错误日志,但这并不重要。如果你感兴趣,你可以在我之前的帖子中找到解决方案。

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

最新更新