Keycloak Google Identity Provider:无法从userinfo端点获取属性

问题描述

嗨,我正在尝试在密钥斗篷中实现Google身份验证,但是当我尝试登录时,抛出此错误。已启用Google+ API,并且错误仍然存​​在。

WARN [org.keycloak.events](认任务126)type = LOGIN_ERROR,realmId = smarttracking,clientId = null,userId = null,ipAddress = 172.18.0.1,error = identity_provider_login_failure

错误[org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider](认任务42)无法使身份提供者进行oauth回调:org.keycloak.broker.provider.IdentitybrokerException:无法从用户信息端点获取属性

解决方法

我在使用 Keycloak 的旧版本时遇到同样的错误。这是因为 Keycloak 使用旧端点来获取用户信息 https://www.googleapis.com/plus/v1/people/me/openIdConnect

当我尝试使用 cURL 使用此端点时,出现此错误:

curl -H "Authorization: Bearer $G_TKN"  https://www.googleapis.com/plus/v1/people/me/openIdConnect

Legacy People API 之前未在项目 xxxxx 中使用或已禁用。通过访问 https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project=xxxxx 启用它,然后重试。如果您最近启用了此 API,请等待几分钟,让操作传播到我们的系统并重试。

所以我认为您需要按照给定的链接启用此 API。