Documentation
¶
Index ¶
- Constants
- Variables
- func ClearSession(target, environment string) error
- func EnforcementEnabled(ctx context.Context) bool
- func Ensure(ctx context.Context, target, environment string, cfg Config) (context.Context, error)
- func Login(ctx context.Context, target, environment string, cfg Config, out io.Writer) (*identity.Principal, error)
- func ManagedEnvironment(environment string) bool
- func PrincipalFromContext(ctx context.Context) (*identity.Principal, bool)
- func SaveSession(session Session) error
- func SessionPath(target, environment string) (string, error)
- func VerifySession(ctx context.Context, target, environment string, cfg Config) (*identity.Principal, error)
- func WithEnforcement(ctx context.Context) context.Context
- func WithInteractive(ctx context.Context, in io.Reader, out, errOut io.Writer) context.Context
- func WithVerifiedPrincipal(ctx context.Context, principal *identity.Principal) context.Context
- type AuthorizationDecision
- type AuthorizationRequest
- type Config
- type Interactive
- type MachineActorRef
- type OperationContext
- type Session
- type SessionObservation
Constants ¶
View Source
const ( EnvIssuer = "BASEHARBOR_OPERATOR_OIDC_ISSUER" EnvClientID = "BASEHARBOR_OPERATOR_OIDC_CLIENT_ID" EnvScopes = "BASEHARBOR_OPERATOR_OIDC_SCOPES" EnvCallbackPort = "BASEHARBOR_OPERATOR_OIDC_CALLBACK_PORT" )
View Source
const AuthorizationContractVersion = "v1"
Variables ¶
View Source
var ( ErrConfigurationRequired = errors.New("operator OIDC configuration is required for managed environments") ErrAuthenticationRequired = errors.New("authenticated BaseHarbor operator session is required") )
Functions ¶
func ClearSession ¶
func EnforcementEnabled ¶
func ManagedEnvironment ¶
func PrincipalFromContext ¶
func SaveSession ¶
func SessionPath ¶
func VerifySession ¶
func WithInteractive ¶
Types ¶
type AuthorizationDecision ¶ added in v0.4.22
type AuthorizationDecision struct {
ContractVersion string `json:"contract_version"`
Allowed bool `json:"allowed"`
Operation string `json:"operation"`
Safety machine.SafetyClass `json:"safety"`
PolicyRequired bool `json:"policy_required"`
ConfirmationRequired bool `json:"confirmation_required"`
Actor MachineActorRef `json:"actor"`
Context OperationContext `json:"context"`
ReasonCode string `json:"reason_code,omitempty"`
Reason string `json:"reason,omitempty"`
}
func AuthorizationDecisionFromContext ¶ added in v0.4.22
func AuthorizationDecisionFromContext(ctx context.Context) (AuthorizationDecision, bool)
func AuthorizeMachineOperation ¶ added in v0.4.22
func AuthorizeMachineOperation(ctx context.Context, request AuthorizationRequest) (AuthorizationDecision, error)
type AuthorizationRequest ¶ added in v0.4.22
type AuthorizationRequest struct {
Operation machine.Operation
Context OperationContext
}
type Config ¶
type Config struct {
Provider string
Issuer string
ClientID string
Scopes []string
CallbackPort int
}
func ConfigFromEnv ¶
type Interactive ¶
func InteractiveFromContext ¶
func InteractiveFromContext(ctx context.Context) (Interactive, bool)
type MachineActorRef ¶ added in v0.4.22
type OperationContext ¶ added in v0.4.22
type OperationContext = machine.OperationContext
type Session ¶
type Session struct {
Target string `json:"target"`
Environment string `json:"environment"`
Issuer string `json:"issuer"`
Subject string `json:"subject"`
ClientID string `json:"client_id"`
IDToken string `json:"id_token"`
ExpiresAt time.Time `json:"expires_at"`
}
func LoadSession ¶
type SessionObservation ¶
type SessionObservation struct {
Present bool `json:"present"`
Valid bool `json:"valid"`
Target string `json:"target,omitempty"`
Environment string `json:"environment,omitempty"`
Issuer string `json:"issuer,omitempty"`
Subject string `json:"subject,omitempty"`
ClientID string `json:"client_id,omitempty"`
ExpiresAt time.Time `json:"expires_at,omitempty"`
}
func ObserveSession ¶
func ObserveSession(target, environment string, cfg Config) (SessionObservation, error)
Click to show internal directories.
Click to hide internal directories.