From b5876dc844329183df59aff326794d3afd575c81 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Fri, 27 Jan 2023 18:18:08 -0500 Subject: [PATCH] fix: Fallback to username when name is unavailable in OIDC provider closes #4774 --- server/routes/auth/providers/oidc.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server/routes/auth/providers/oidc.ts b/server/routes/auth/providers/oidc.ts index fab35dfa5..3203221c6 100644 --- a/server/routes/auth/providers/oidc.ts +++ b/server/routes/auth/providers/oidc.ts @@ -100,6 +100,10 @@ if (env.OIDC_CLIENT_ID && env.OIDC_CLIENT_SECRET) { // remove the TLD and form a subdomain from the remaining const subdomain = slugifyDomain(domain); + // Claim name can be overriden using an env variable. + // Default is 'preferred_username' as per OIDC spec. + const username = get(profile, env.OIDC_USERNAME_CLAIM); + const result = await accountProvisioner({ ip: ctx.ip, team: { @@ -110,12 +114,10 @@ if (env.OIDC_CLIENT_ID && env.OIDC_CLIENT_SECRET) { subdomain, }, user: { - name: profile.name, + name: profile.name || username || profile.username, email: profile.email, avatarUrl: profile.picture, - // Claim name can be overriden using an env variable. - // Default is 'preferred_username' as per OIDC spec. - username: get(profile, env.OIDC_USERNAME_CLAIM), + username, }, authenticationProvider: { name: providerName,