IDToken: Reuse claims from authlib (#87437)

* bump authlib version

* Reuse claims from authlib
This commit is contained in:
Karl Persson
2024-05-07 16:46:43 +02:00
committed by GitHub
parent 27fa544f72
commit 2d8570e85e
9 changed files with 18 additions and 28 deletions
+8 -5
View File
@@ -7,6 +7,7 @@ import (
"time"
"github.com/go-jose/go-jose/v3/jwt"
authnlib "github.com/grafana/authlib/authn"
"github.com/prometheus/client_golang/prometheus"
"golang.org/x/sync/singleflight"
@@ -79,20 +80,22 @@ func (s *Service) SignIdentity(ctx context.Context, id identity.Requester) (stri
now := time.Now()
claims := &auth.IDClaims{
Claims: jwt.Claims{
Claims: &jwt.Claims{
Issuer: s.cfg.AppURL,
Audience: getAudience(id.GetOrgID()),
Subject: getSubject(namespace.String(), identifier),
Expiry: jwt.NewNumericDate(now.Add(tokenTTL)),
IssuedAt: jwt.NewNumericDate(now),
},
Namespace: s.nsMapper(id.GetOrgID()),
Rest: authnlib.IDTokenClaims{
Namespace: s.nsMapper(id.GetOrgID()),
},
}
if identity.IsNamespace(namespace, identity.NamespaceUser) {
claims.Email = id.GetEmail()
claims.EmailVerified = id.IsEmailVerified()
claims.AuthenticatedBy = id.GetAuthenticatedBy()
claims.Rest.Email = id.GetEmail()
claims.Rest.EmailVerified = id.IsEmailVerified()
claims.Rest.AuthenticatedBy = id.GetAuthenticatedBy()
}
token, err := s.signer.SignIDToken(ctx, claims)