@@ -211,6 +211,7 @@ func TestProviderData_buildSessionFromClaims(t *testing.T) {
211211 testCases := map[string]struct {
212212 IDToken idTokenClaims
213213 AllowUnverified bool
214+ UserClaim string
214215 EmailClaim string
215216 GroupsClaim string
216217 ExpectedError error
@@ -259,6 +260,27 @@ func TestProviderData_buildSessionFromClaims(t *testing.T) {
259260 PreferredUsername: "Complex Claim",
260261 },
261262 },
263+ "User Claim Switched": {
264+ IDToken: defaultIDToken,
265+ AllowUnverified: true,
266+ UserClaim: "phone_number",
267+ EmailClaim: "email",
268+ GroupsClaim: "groups",
269+ ExpectedSession: &sessions.SessionState{
270+ User: "+4798765432",
271+ Email: "janed@me.com",
272+ Groups: []string{"test:a", "test:b"},
273+ PreferredUsername: "Jane Dobbs",
274+ },
275+ },
276+ "User Claim Invalid": {
277+ IDToken: defaultIDToken,
278+ AllowUnverified: true,
279+ UserClaim: "groups",
280+ EmailClaim: "email",
281+ GroupsClaim: "groups",
282+ ExpectedError: errors.New("unable to extract custom UserClaim (groups)"),
283+ },
262284 "Email Claim Switched": {
263285 IDToken: unverifiedIDToken,
264286 AllowUnverified: true,
@@ -332,6 +354,7 @@ func TestProviderData_buildSessionFromClaims(t *testing.T) {
332354 ),
333355 }
334356 provider.AllowUnverifiedEmail = tc.AllowUnverified
357+ provider.UserClaim = tc.UserClaim
335358 provider.EmailClaim = tc.EmailClaim
336359 provider.GroupsClaim = tc.GroupsClaim
337360