Documentation
¶
Index ¶
Constants ¶
View Source
const ( FederationActionOIDCLogin = "oidc_login" FederationActionSAMLLogin = "saml_login" FederationActionAccountLink = "account_link" )
Variables ¶
View Source
var ( ErrInvalidFederationState = errors.New("invalid federation state") ErrExpiredFederationState = errors.New("expired federation state") ErrCSRFMismatch = errors.New("csrf binding mismatch") ErrTenantMismatch = errors.New("tenant mismatch") ErrUserMismatch = errors.New("user mismatch") ErrActionMismatch = errors.New("action mismatch") ErrMissingRequiredField = errors.New("missing required field in federation state") )
View Source
var ( ErrOutboundPolicyNotFound = errors.New("no outbound policy configured") ErrURLNotAllowed = errors.New("url not allowed by outbound policy") )
Functions ¶
func NewOutboundGuard ¶
func NewOutboundGuard(repo port.OutboundPolicyRepository, skipTLSVerify bool) port.OutboundGuard
Types ¶
type FederationStatePayload ¶
type FederationStatePayload struct {
Action string `json:"action"`
TenantID string `json:"tenant_id"`
LoginChallenge string `json:"login_challenge"`
ConnectionID string `json:"connection_id"`
UserID string `json:"user_id,omitempty"`
CSRFHash string `json:"csrf_hash,omitempty"`
ExpiresAt int64 `json:"exp"`
IssuedAt int64 `json:"iat"`
Version int `json:"v"`
}
type FederationStateProvider ¶
type FederationStateProvider interface {
Issue(ctx context.Context, input IssueFederationStateInput) (string, error)
Verify(ctx context.Context, token string, input VerifyFederationStateInput) (*FederationStatePayload, error)
}
func NewFederationStateProvider ¶
func NewFederationStateProvider(cfg *config.Config) FederationStateProvider
func NewFederationStateProviderWithClock ¶
func NewFederationStateProviderWithClock(cfg *config.Config, clock func() time.Time) FederationStateProvider
Click to show internal directories.
Click to hide internal directories.