idp

package
v0.21.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 12, 2023 License: BSD-3-Clause Imports: 21 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GeneratePassword added in v0.9.8

func GeneratePassword(passwordLength, minSpecialChar, minNum, minUpperCase int) string

GeneratePassword generates user password

Types

type AppMetadata

type AppMetadata struct {
	// WTAccountID is a NetBird (previously Wiretrustee) account id to update in the IDP
	// maps to wt_account_id when json.marshal
	WTAccountID     string `json:"wt_account_id,omitempty"`
	WTPendingInvite *bool  `json:"wt_pending_invite"`
}

AppMetadata user app metadata to associate with a profile

type Auth0ClientConfig

type Auth0ClientConfig struct {
	Audience     string
	AuthIssuer   string
	ClientID     string
	ClientSecret string
	GrantType    string
}

Auth0ClientConfig auth0 manager client configurations

type Auth0Credentials

type Auth0Credentials struct {
	// contains filtered or unexported fields
}

Auth0Credentials auth0 authentication information

func (*Auth0Credentials) Authenticate

func (c *Auth0Credentials) Authenticate() (JWTToken, error)

Authenticate retrieves access token to use the Auth0 Management API

type Auth0Manager

type Auth0Manager struct {
	// contains filtered or unexported fields
}

Auth0Manager auth0 manager client instance

func NewAuth0Manager

func NewAuth0Manager(config Auth0ClientConfig, appMetrics telemetry.AppMetrics) (*Auth0Manager, error)

NewAuth0Manager creates a new instance of the Auth0Manager

func (*Auth0Manager) CreateUser added in v0.9.8

func (am *Auth0Manager) CreateUser(email string, name string, accountID string) (*UserData, error)

CreateUser creates a new user in Auth0 Idp and sends an invite

func (*Auth0Manager) GetAccount added in v0.6.4

func (am *Auth0Manager) GetAccount(accountID string) ([]*UserData, error)

GetAccount returns all the users for a given profile. Calls Auth0 API.

func (*Auth0Manager) GetAllAccounts added in v0.6.4

func (am *Auth0Manager) GetAllAccounts() (map[string][]*UserData, error)

GetAllAccounts gets all registered accounts with corresponding user data. It returns a list of users indexed by accountID.

func (*Auth0Manager) GetUserByEmail added in v0.9.8

func (am *Auth0Manager) GetUserByEmail(email string) ([]*UserData, error)

GetUserByEmail searches users with a given email. If no users have been found, this function returns an empty list. This function can return multiple users. This is due to the Auth0 internals - there could be multiple users with the same email but different connections that are considered as separate accounts (e.g., Google and username/password).

func (*Auth0Manager) GetUserDataByID

func (am *Auth0Manager) GetUserDataByID(userID string, appMetadata AppMetadata) (*UserData, error)

GetUserDataByID requests user data from auth0 via ID

func (*Auth0Manager) UpdateUserAppMetadata

func (am *Auth0Manager) UpdateUserAppMetadata(userID string, appMetadata AppMetadata) error

UpdateUserAppMetadata updates user app metadata based on userId and metadata map

type AuthentikClientConfig added in v0.21.0

type AuthentikClientConfig struct {
	Issuer        string
	ClientID      string
	Username      string
	Password      string
	TokenEndpoint string
	GrantType     string
}

AuthentikClientConfig authentik manager client configurations.

type AuthentikCredentials added in v0.21.0

type AuthentikCredentials struct {
	// contains filtered or unexported fields
}

AuthentikCredentials authentik authentication information.

func (*AuthentikCredentials) Authenticate added in v0.21.0

func (ac *AuthentikCredentials) Authenticate() (JWTToken, error)

Authenticate retrieves access token to use the authentik management API.

type AuthentikManager added in v0.21.0

type AuthentikManager struct {
	// contains filtered or unexported fields
}

AuthentikManager authentik manager client instance.

func NewAuthentikManager added in v0.21.0

func NewAuthentikManager(config AuthentikClientConfig,
	appMetrics telemetry.AppMetrics) (*AuthentikManager, error)

NewAuthentikManager creates a new instance of the AuthentikManager.

func (*AuthentikManager) CreateUser added in v0.21.0

func (am *AuthentikManager) CreateUser(email string, name string, accountID string) (*UserData, error)

CreateUser creates a new user in authentik Idp and sends an invitation.

func (*AuthentikManager) GetAccount added in v0.21.0

func (am *AuthentikManager) GetAccount(accountID string) ([]*UserData, error)

GetAccount returns all the users for a given profile.

func (*AuthentikManager) GetAllAccounts added in v0.21.0

func (am *AuthentikManager) GetAllAccounts() (map[string][]*UserData, error)

GetAllAccounts gets all registered accounts with corresponding user data. It returns a list of users indexed by accountID.

func (*AuthentikManager) GetUserByEmail added in v0.21.0

func (am *AuthentikManager) GetUserByEmail(email string) ([]*UserData, error)

GetUserByEmail searches users with a given email. If no users have been found, this function returns an empty list.

func (*AuthentikManager) GetUserDataByID added in v0.21.0

func (am *AuthentikManager) GetUserDataByID(userID string, appMetadata AppMetadata) (*UserData, error)

GetUserDataByID requests user data from authentik via ID.

func (*AuthentikManager) UpdateUserAppMetadata added in v0.21.0

func (am *AuthentikManager) UpdateUserAppMetadata(userID string, appMetadata AppMetadata) error

UpdateUserAppMetadata updates user app metadata based on userID and metadata map.

type AzureClientConfig added in v0.19.0

type AzureClientConfig struct {
	ClientID         string
	ClientSecret     string
	ObjectID         string
	GraphAPIEndpoint string
	TokenEndpoint    string
	GrantType        string
}

AzureClientConfig azure manager client configurations.

type AzureCredentials added in v0.19.0

type AzureCredentials struct {
	// contains filtered or unexported fields
}

AzureCredentials azure authentication information.

func (*AzureCredentials) Authenticate added in v0.19.0

func (ac *AzureCredentials) Authenticate() (JWTToken, error)

Authenticate retrieves access token to use the azure Management API.

type AzureManager added in v0.19.0

type AzureManager struct {
	ClientID         string
	ObjectID         string
	GraphAPIEndpoint string
	// contains filtered or unexported fields
}

AzureManager azure manager client instance.

func NewAzureManager added in v0.19.0

func NewAzureManager(config AzureClientConfig, appMetrics telemetry.AppMetrics) (*AzureManager, error)

NewAzureManager creates a new instance of the AzureManager.

func (*AzureManager) CreateUser added in v0.19.0

func (am *AzureManager) CreateUser(email string, name string, accountID string) (*UserData, error)

CreateUser creates a new user in azure AD Idp.

func (*AzureManager) GetAccount added in v0.19.0

func (am *AzureManager) GetAccount(accountID string) ([]*UserData, error)

GetAccount returns all the users for a given profile.

func (*AzureManager) GetAllAccounts added in v0.19.0

func (am *AzureManager) GetAllAccounts() (map[string][]*UserData, error)

GetAllAccounts gets all registered accounts with corresponding user data. It returns a list of users indexed by accountID.

func (*AzureManager) GetUserByEmail added in v0.19.0

func (am *AzureManager) GetUserByEmail(email string) ([]*UserData, error)

GetUserByEmail searches users with a given email. If no users have been found, this function returns an empty list.

func (*AzureManager) GetUserDataByID added in v0.19.0

func (am *AzureManager) GetUserDataByID(userID string, appMetadata AppMetadata) (*UserData, error)

GetUserDataByID requests user data from keycloak via ID.

func (*AzureManager) UpdateUserAppMetadata added in v0.19.0

func (am *AzureManager) UpdateUserAppMetadata(userID string, appMetadata AppMetadata) error

UpdateUserAppMetadata updates user app metadata based on userID.

type ClientConfig added in v0.21.0

type ClientConfig struct {
	Issuer        string
	TokenEndpoint string
	ClientID      string
	ClientSecret  string
	GrantType     string
}

ClientConfig defines common client configuration for all IdP manager

type Config

type Config struct {
	ManagerType               string
	ClientConfig              *ClientConfig
	ExtraConfig               ExtraConfig
	Auth0ClientCredentials    Auth0ClientConfig
	AzureClientCredentials    AzureClientConfig
	KeycloakClientCredentials KeycloakClientConfig
	ZitadelClientCredentials  ZitadelClientConfig
}

Config an idp configuration struct to be loaded from management server's config file

type ExtraConfig added in v0.21.0

type ExtraConfig map[string]string

ExtraConfig stores IdP specific config that are unique to individual IdPs

type JWTToken

type JWTToken struct {
	AccessToken string `json:"access_token"`
	ExpiresIn   int    `json:"expires_in"`

	Scope     string `json:"scope"`
	TokenType string `json:"token_type"`
	// contains filtered or unexported fields
}

JWTToken a JWT object that holds information of a token

type JsonParser

type JsonParser struct{}

func (JsonParser) Marshal

func (JsonParser) Marshal(v interface{}) ([]byte, error)

func (JsonParser) Unmarshal

func (JsonParser) Unmarshal(data []byte, v interface{}) error

type KeycloakClientConfig added in v0.14.5

type KeycloakClientConfig struct {
	ClientID      string
	ClientSecret  string
	AdminEndpoint string
	TokenEndpoint string
	GrantType     string
}

KeycloakClientConfig keycloak manager client configurations.

type KeycloakCredentials added in v0.14.5

type KeycloakCredentials struct {
	// contains filtered or unexported fields
}

KeycloakCredentials keycloak authentication information.

func (*KeycloakCredentials) Authenticate added in v0.14.5

func (kc *KeycloakCredentials) Authenticate() (JWTToken, error)

Authenticate retrieves access token to use the keycloak Management API.

type KeycloakManager added in v0.14.5

type KeycloakManager struct {
	// contains filtered or unexported fields
}

KeycloakManager keycloak manager client instance.

func NewKeycloakManager added in v0.14.5

func NewKeycloakManager(config KeycloakClientConfig, appMetrics telemetry.AppMetrics) (*KeycloakManager, error)

NewKeycloakManager creates a new instance of the KeycloakManager.

func (*KeycloakManager) CreateUser added in v0.14.5

func (km *KeycloakManager) CreateUser(email string, name string, accountID string) (*UserData, error)

CreateUser creates a new user in keycloak Idp and sends an invite.

func (*KeycloakManager) GetAccount added in v0.14.5

func (km *KeycloakManager) GetAccount(accountID string) ([]*UserData, error)

GetAccount returns all the users for a given profile.

func (*KeycloakManager) GetAllAccounts added in v0.14.5

func (km *KeycloakManager) GetAllAccounts() (map[string][]*UserData, error)

GetAllAccounts gets all registered accounts with corresponding user data. It returns a list of users indexed by accountID.

func (*KeycloakManager) GetUserByEmail added in v0.14.5

func (km *KeycloakManager) GetUserByEmail(email string) ([]*UserData, error)

GetUserByEmail searches users with a given email. If no users have been found, this function returns an empty list.

func (*KeycloakManager) GetUserDataByID added in v0.14.5

func (km *KeycloakManager) GetUserDataByID(userID string, appMetadata AppMetadata) (*UserData, error)

GetUserDataByID requests user data from keycloak via ID.

func (*KeycloakManager) UpdateUserAppMetadata added in v0.14.5

func (km *KeycloakManager) UpdateUserAppMetadata(userID string, appMetadata AppMetadata) error

UpdateUserAppMetadata updates user app metadata based on userID and metadata map.

type Manager

type Manager interface {
	UpdateUserAppMetadata(userId string, appMetadata AppMetadata) error
	GetUserDataByID(userId string, appMetadata AppMetadata) (*UserData, error)
	GetAccount(accountId string) ([]*UserData, error)
	GetAllAccounts() (map[string][]*UserData, error)
	CreateUser(email string, name string, accountID string) (*UserData, error)
	GetUserByEmail(email string) ([]*UserData, error)
}

Manager idp manager interface

func NewManager

func NewManager(config Config, appMetrics telemetry.AppMetrics) (Manager, error)

NewManager returns a new idp manager based on the configuration that it receives

type ManagerCredentials

type ManagerCredentials interface {
	Authenticate() (JWTToken, error)
}

ManagerCredentials interface that authenticates using the credential of each type of idp

type ManagerHTTPClient

type ManagerHTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

ManagerHTTPClient http client interface for API calls

type ManagerHelper

type ManagerHelper interface {
	Marshal(v interface{}) ([]byte, error)
	Unmarshal(data []byte, v interface{}) error
}

ManagerHelper helper

type OktaClientConfig added in v0.21.0

type OktaClientConfig struct {
	APIToken      string
	Issuer        string
	TokenEndpoint string
	GrantType     string
}

OktaClientConfig okta manager client configurations.

type OktaCredentials added in v0.21.0

type OktaCredentials struct {
	// contains filtered or unexported fields
}

OktaCredentials okta authentication information.

func (*OktaCredentials) Authenticate added in v0.21.0

func (oc *OktaCredentials) Authenticate() (JWTToken, error)

Authenticate retrieves access token to use the okta user API.

type OktaManager added in v0.21.0

type OktaManager struct {
	// contains filtered or unexported fields
}

OktaManager okta manager client instance.

func NewOktaManager added in v0.21.0

func NewOktaManager(config OktaClientConfig, appMetrics telemetry.AppMetrics) (*OktaManager, error)

NewOktaManager creates a new instance of the OktaManager.

func (*OktaManager) CreateUser added in v0.21.0

func (om *OktaManager) CreateUser(email string, name string, accountID string) (*UserData, error)

CreateUser creates a new user in okta Idp and sends an invitation.

func (*OktaManager) GetAccount added in v0.21.0

func (om *OktaManager) GetAccount(accountID string) ([]*UserData, error)

GetAccount returns all the users for a given profile.

func (*OktaManager) GetAllAccounts added in v0.21.0

func (om *OktaManager) GetAllAccounts() (map[string][]*UserData, error)

GetAllAccounts gets all registered accounts with corresponding user data. It returns a list of users indexed by accountID.

func (*OktaManager) GetUserByEmail added in v0.21.0

func (om *OktaManager) GetUserByEmail(email string) ([]*UserData, error)

GetUserByEmail searches users with a given email. If no users have been found, this function returns an empty list.

func (*OktaManager) GetUserDataByID added in v0.21.0

func (om *OktaManager) GetUserDataByID(userID string, appMetadata AppMetadata) (*UserData, error)

GetUserDataByID requests user data from keycloak via ID.

func (*OktaManager) UpdateUserAppMetadata added in v0.21.0

func (om *OktaManager) UpdateUserAppMetadata(userID string, appMetadata AppMetadata) error

UpdateUserAppMetadata updates user app metadata based on userID and metadata map.

type UserData

type UserData struct {
	Email       string      `json:"email"`
	Name        string      `json:"name"`
	ID          string      `json:"user_id"`
	AppMetadata AppMetadata `json:"app_metadata"`
}

type ZitadelClientConfig added in v0.20.0

type ZitadelClientConfig struct {
	ClientID           string
	ClientSecret       string
	GrantType          string
	TokenEndpoint      string
	ManagementEndpoint string
}

ZitadelClientConfig zitadel manager client configurations.

type ZitadelCredentials added in v0.20.0

type ZitadelCredentials struct {
	// contains filtered or unexported fields
}

ZitadelCredentials zitadel authentication information.

func (*ZitadelCredentials) Authenticate added in v0.20.0

func (zc *ZitadelCredentials) Authenticate() (JWTToken, error)

Authenticate retrieves access token to use the Zitadel Management API.

type ZitadelManager added in v0.20.0

type ZitadelManager struct {
	// contains filtered or unexported fields
}

ZitadelManager zitadel manager client instance.

func NewZitadelManager added in v0.20.0

func NewZitadelManager(config ZitadelClientConfig, appMetrics telemetry.AppMetrics) (*ZitadelManager, error)

NewZitadelManager creates a new instance of the ZitadelManager.

func (*ZitadelManager) CreateUser added in v0.20.0

func (zm *ZitadelManager) CreateUser(email string, name string, accountID string) (*UserData, error)

CreateUser creates a new user in zitadel Idp and sends an invite.

func (*ZitadelManager) GetAccount added in v0.20.0

func (zm *ZitadelManager) GetAccount(accountID string) ([]*UserData, error)

GetAccount returns all the users for a given profile.

func (*ZitadelManager) GetAllAccounts added in v0.20.0

func (zm *ZitadelManager) GetAllAccounts() (map[string][]*UserData, error)

GetAllAccounts gets all registered accounts with corresponding user data. It returns a list of users indexed by accountID.

func (*ZitadelManager) GetUserByEmail added in v0.20.0

func (zm *ZitadelManager) GetUserByEmail(email string) ([]*UserData, error)

GetUserByEmail searches users with a given email. If no users have been found, this function returns an empty list.

func (*ZitadelManager) GetUserDataByID added in v0.20.0

func (zm *ZitadelManager) GetUserDataByID(userID string, appMetadata AppMetadata) (*UserData, error)

GetUserDataByID requests user data from zitadel via ID.

func (*ZitadelManager) UpdateUserAppMetadata added in v0.20.0

func (zm *ZitadelManager) UpdateUserAppMetadata(userID string, appMetadata AppMetadata) error

UpdateUserAppMetadata updates user app metadata based on userID and metadata map. Metadata values are base64 encoded.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL