@@ -569,6 +569,20 @@ func (api *API) userOIDC(rw http.ResponseWriter, r *http.Request) {
569
569
return
570
570
}
571
571
572
+ // Log all of the field names returned in the ID token claims, and the
573
+ // userinfo returned from the provider.
574
+ {
575
+ fields := make ([]string , 0 , len (claims ))
576
+ for f := range claims {
577
+ fields = append (fields , f )
578
+ }
579
+
580
+ api .Logger .Debug (ctx , "got oidc claims" ,
581
+ slog .F ("user_info" , userInfo ),
582
+ slog .F ("claim_fields" , fields ),
583
+ )
584
+ }
585
+
572
586
usernameRaw , ok := claims [api .OIDCConfig .UsernameField ]
573
587
var username string
574
588
if ok {
@@ -624,6 +638,11 @@ func (api *API) userOIDC(rw http.ResponseWriter, r *http.Request) {
624
638
// Convert the []interface{} we get to a []string.
625
639
groupsInterface , ok := groupsRaw .([]interface {})
626
640
if ok {
641
+ api .Logger .Debug (ctx , "groups returned in oidc claims" ,
642
+ slog .F ("len" , len (groupsInterface )),
643
+ slog .F ("groups" , groupsInterface ),
644
+ )
645
+
627
646
for _ , groupInterface := range groupsInterface {
628
647
group , ok := groupInterface .(string )
629
648
if ! ok {
@@ -634,6 +653,10 @@ func (api *API) userOIDC(rw http.ResponseWriter, r *http.Request) {
634
653
}
635
654
groups = append (groups , group )
636
655
}
656
+ } else {
657
+ api .Logger .Debug (ctx , "groups field was an unknown type" ,
658
+ slog .F ("type" , fmt .Sprintf ("%T" , groupsRaw )),
659
+ )
637
660
}
638
661
}
639
662
}
0 commit comments