mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Authn: Add function to resolve identity from org and namespace id (#84555)
* Add function to get the namespaced id * Add function to resolve an identity through authn.Service from org and namespace id * Switch to resolve identity for re-authenticate in another org
This commit is contained in:
33
pkg/services/authn/clients/identity.go
Normal file
33
pkg/services/authn/clients/identity.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package clients
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/grafana/grafana/pkg/services/authn"
|
||||
)
|
||||
|
||||
var _ authn.Client = (*IdentityClient)(nil)
|
||||
|
||||
func ProvideIdentity(namespaceID string) *IdentityClient {
|
||||
return &IdentityClient{namespaceID}
|
||||
}
|
||||
|
||||
type IdentityClient struct {
|
||||
namespaceID string
|
||||
}
|
||||
|
||||
func (i *IdentityClient) Name() string {
|
||||
return "identity"
|
||||
}
|
||||
|
||||
// Authenticate implements authn.Client.
|
||||
func (i *IdentityClient) Authenticate(ctx context.Context, r *authn.Request) (*authn.Identity, error) {
|
||||
return &authn.Identity{
|
||||
OrgID: r.OrgID,
|
||||
ID: i.namespaceID,
|
||||
ClientParams: authn.ClientParams{
|
||||
FetchSyncedUser: true,
|
||||
SyncPermissions: true,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user