From 5829fdd399dbd5a9405041f90ee26566fd6a2972 Mon Sep 17 00:00:00 2001 From: Ieva Date: Tue, 6 Jun 2023 17:45:25 +0100 Subject: [PATCH] Auth: Remove Email Lookup from oauth integrations 9.4 (#896) backport https://github.com/grafana/grafana-private-mirror/pull/894 to 9.4.x --- pkg/api/login_oauth.go | 17 +++++++++-------- pkg/setting/setting.go | 5 ++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pkg/api/login_oauth.go b/pkg/api/login_oauth.go index f444615081b..c26643ef154 100644 --- a/pkg/api/login_oauth.go +++ b/pkg/api/login_oauth.go @@ -314,16 +314,17 @@ func (hs *HTTPServer) SyncUser( connect social.SocialConnector, ) (*user.User, error) { oauthLogger.Debug("Syncing Grafana user with corresponding OAuth profile") + lookupParams := loginservice.UserLookupParams{} + if hs.Cfg.OAuthAllowInsecureEmailLookup { + lookupParams.Email = &extUser.Email + } + // add/update user in Grafana cmd := &loginservice.UpsertUserCommand{ - ReqContext: ctx, - ExternalUser: extUser, - SignupAllowed: connect.IsSignupAllowed(), - UserLookupParams: loginservice.UserLookupParams{ - Email: &extUser.Email, - UserID: nil, - Login: nil, - }, + ReqContext: ctx, + ExternalUser: extUser, + SignupAllowed: connect.IsSignupAllowed(), + UserLookupParams: lookupParams, } if err := hs.Login.UpsertUser(ctx.Req.Context(), cmd); err != nil { diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index dbc4aaeb654..e5f0e79f559 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -326,7 +326,8 @@ type Cfg struct { AuthProxySyncTTL int // OAuth - OAuthCookieMaxAge int + OAuthCookieMaxAge int + OAuthAllowInsecureEmailLookup bool // JWT Auth JWTAuthEnabled bool @@ -1457,6 +1458,8 @@ func readAuthSettings(iniFile *ini.File, cfg *Cfg) (err error) { return err } + cfg.OAuthAllowInsecureEmailLookup = auth.Key("oauth_allow_insecure_email_lookup").MustBool(false) + const defaultMaxLifetime = "30d" maxLifetimeDurationVal := valueAsString(auth, "login_maximum_lifetime_duration", defaultMaxLifetime) cfg.LoginMaxLifetime, err = gtime.ParseDuration(maxLifetimeDurationVal)