mirror of https://github.com/grafana/grafana.git
				
				
				
			refactoring NamespaceAccessChecker usage and use CloudNamespaceFormatter in Cloud
Co-Authored-By: Gabriel MABILLE <gamab@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									bb5ee88d4f
								
							
						
					
					
						commit
						62f165f6f9
					
				|  | @ -0,0 +1,23 @@ | ||||||
|  | package grpcutils | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	authzlib "github.com/grafana/authlib/authz" | ||||||
|  | 	"github.com/grafana/authlib/claims" | ||||||
|  | 
 | ||||||
|  | 	"github.com/grafana/grafana/pkg/setting" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func NewNamespaceAccessChecker(cfg *setting.Cfg) authzlib.NamespaceAccessChecker { | ||||||
|  | 	if cfg.StackID != "" { | ||||||
|  | 		return authzlib.NewNamespaceAccessChecker( | ||||||
|  | 			claims.CloudNamespaceFormatter, | ||||||
|  | 			authzlib.WithIDTokenNamespaceAccessCheckerOption(true), | ||||||
|  | 		) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return authzlib.NewNamespaceAccessChecker( | ||||||
|  | 		claims.OrgNamespaceFormatter, | ||||||
|  | 		authzlib.WithDisableAccessTokenNamespaceAccessCheckerOption(), | ||||||
|  | 		authzlib.WithIDTokenNamespaceAccessCheckerOption(true), | ||||||
|  | 	) | ||||||
|  | } | ||||||
|  | @ -7,7 +7,6 @@ import ( | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	authzlib "github.com/grafana/authlib/authz" | 	authzlib "github.com/grafana/authlib/authz" | ||||||
| 	"github.com/grafana/authlib/claims" |  | ||||||
| 	"github.com/grafana/dskit/instrument" | 	"github.com/grafana/dskit/instrument" | ||||||
| 	"github.com/grafana/dskit/middleware" | 	"github.com/grafana/dskit/middleware" | ||||||
| 	"github.com/grafana/grafana-plugin-sdk-go/backend" | 	"github.com/grafana/grafana-plugin-sdk-go/backend" | ||||||
|  | @ -20,6 +19,7 @@ import ( | ||||||
| 	"github.com/grafana/grafana/pkg/infra/log" | 	"github.com/grafana/grafana/pkg/infra/log" | ||||||
| 	"github.com/grafana/grafana/pkg/infra/tracing" | 	"github.com/grafana/grafana/pkg/infra/tracing" | ||||||
| 	"github.com/grafana/grafana/pkg/registry" | 	"github.com/grafana/grafana/pkg/registry" | ||||||
|  | 	"github.com/grafana/grafana/pkg/services/authn/grpcutils" | ||||||
| 	"github.com/grafana/grafana/pkg/services/featuremgmt" | 	"github.com/grafana/grafana/pkg/services/featuremgmt" | ||||||
| 	"github.com/grafana/grafana/pkg/services/grpcserver/interceptors" | 	"github.com/grafana/grafana/pkg/services/grpcserver/interceptors" | ||||||
| 	"github.com/grafana/grafana/pkg/setting" | 	"github.com/grafana/grafana/pkg/setting" | ||||||
|  | @ -73,13 +73,7 @@ func ProvideService(cfg *setting.Cfg, features featuremgmt.FeatureToggles, authe | ||||||
| 
 | 
 | ||||||
| 	var opts []grpc.ServerOption | 	var opts []grpc.ServerOption | ||||||
| 
 | 
 | ||||||
| 	// We don't need to support the CloudNamespaceFormatter here, because the grpcserver is only used on-prem.
 | 	namespaceChecker := grpcutils.NewNamespaceAccessChecker(cfg) | ||||||
| 	// TODO(drclau): validate this assumption.
 |  | ||||||
| 	namespaceChecker := authzlib.NewNamespaceAccessChecker( |  | ||||||
| 		claims.OrgNamespaceFormatter, |  | ||||||
| 		authzlib.WithDisableAccessTokenNamespaceAccessCheckerOption(), |  | ||||||
| 		authzlib.WithIDTokenNamespaceAccessCheckerOption(true), |  | ||||||
| 	) |  | ||||||
| 	stackIdExtractor := authzlib.MetadataStackIDExtractor(authzlib.DefaultStackIDMetadataKey) | 	stackIdExtractor := authzlib.MetadataStackIDExtractor(authzlib.DefaultStackIDMetadataKey) | ||||||
| 
 | 
 | ||||||
| 	// Default auth is admin token check, but this can be overridden by
 | 	// Default auth is admin token check, but this can be overridden by
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue