ExtJwtClient: Use user namespace for k8s allowed namespace (#93687)

* ExtJwtClient: Use user namespace for k8s allowed namespace

* fix test
This commit is contained in:
Gabriel MABILLE 2025-01-15 17:38:46 +01:00 committed by GitHub
parent 5d45af1110
commit b6fc695598
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 10 deletions

View File

@ -127,13 +127,6 @@ func (s *ExtendedJWT) authenticateAsUser(
return nil, errExtJWTInvalidSubject.Errorf("unexpected identity: %s", idTokenClaims.Subject) return nil, errExtJWTInvalidSubject.Errorf("unexpected identity: %s", idTokenClaims.Subject)
} }
// For use in service layer, allow higher privilege
namespace := accessTokenClaims.Rest.Namespace
if len(s.cfg.StackID) > 0 {
// For single-tenant cloud use, choose the lower of the two (id token will always have the specific namespace)
namespace = idTokenClaims.Rest.Namespace
}
return &authn.Identity{ return &authn.Identity{
ID: id, ID: id,
Type: t, Type: t,
@ -142,7 +135,7 @@ func (s *ExtendedJWT) authenticateAsUser(
IDTokenClaims: &idTokenClaims, IDTokenClaims: &idTokenClaims,
AuthenticatedBy: login.ExtendedJWTModule, AuthenticatedBy: login.ExtendedJWTModule,
AuthID: accessTokenClaims.Subject, AuthID: accessTokenClaims.Subject,
Namespace: namespace, Namespace: idTokenClaims.Rest.Namespace,
ClientParams: authn.ClientParams{ ClientParams: authn.ClientParams{
SyncPermissions: true, SyncPermissions: true,
FetchPermissionsParams: authn.FetchPermissionsParams{ FetchPermissionsParams: authn.FetchPermissionsParams{

View File

@ -283,7 +283,7 @@ func TestExtendedJWT_Authenticate(t *testing.T) {
}, },
}, },
{ {
name: "should authenticate as user using wildcard namespace for access token", name: "should authenticate as user in the user namespace",
accessToken: &validAccessTokenClaimsWildcard, accessToken: &validAccessTokenClaimsWildcard,
idToken: &validIDTokenClaims, idToken: &validIDTokenClaims,
orgID: 1, orgID: 1,
@ -293,7 +293,7 @@ func TestExtendedJWT_Authenticate(t *testing.T) {
OrgID: 1, OrgID: 1,
AccessTokenClaims: &validAccessTokenClaimsWildcard, AccessTokenClaims: &validAccessTokenClaimsWildcard,
IDTokenClaims: &validIDTokenClaims, IDTokenClaims: &validIDTokenClaims,
Namespace: "*", Namespace: "default",
AuthenticatedBy: "extendedjwt", AuthenticatedBy: "extendedjwt",
AuthID: "access-policy:this-uid", AuthID: "access-policy:this-uid",
ClientParams: authn.ClientParams{ ClientParams: authn.ClientParams{