feat(oidc claims): extend Claims struct with additional fields for user attributes

This commit is contained in:
2026-01-06 19:14:40 +00:00
parent 2cf53e3945
commit 47ed3fc628
2 changed files with 23 additions and 4 deletions

View File

@@ -95,6 +95,20 @@ func Register(
attrs[samlAttr] = []string{claims.Email} attrs[samlAttr] = []string{claims.Email}
case "name": case "name":
attrs[samlAttr] = []string{claims.Name} attrs[samlAttr] = []string{claims.Name}
case "display_name":
attrs[samlAttr] = []string{claims.DisplayName}
case "email_verified":
if claims.EmailVerified {
attrs[samlAttr] = []string{"true"}
} else {
attrs[samlAttr] = []string{"false"}
}
case "given_name":
attrs[samlAttr] = []string{claims.GivenName}
case "family_name":
attrs[samlAttr] = []string{claims.FamilyName}
case "preferred_username":
attrs[samlAttr] = []string{claims.PreferredUsername}
case "role": case "role":
attrs[samlAttr] = []string{mapRole(claims.Groups, sp)} attrs[samlAttr] = []string{mapRole(claims.Groups, sp)}
} }

View File

@@ -39,10 +39,15 @@ func NewClient(cfg *config.Config) (*Client, error) {
} }
type Claims struct { type Claims struct {
Subject string `json:"sub"` Subject string `json:"sub"`
Email string `json:"email"` Email string `json:"email"`
Name string `json:"name"` Name string `json:"name"`
Groups []string `json:"groups"` Groups []string `json:"groups"`
DisplayName string `json:"display_name"`
EmailVerified bool `json:"email_verified"`
FamilyName string `json:"family_name"`
GivenName string `json:"given_name"`
PreferredUsername string `json:"preferred_username"`
} }
func (c *Client) AuthCodeURL(state string, extra url.Values) string { func (c *Client) AuthCodeURL(state string, extra url.Values) string {