【发布时间】: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