Documentation
¶
Index ¶
- type BaseConfig
- type ClientConfig
- type OidcAuthConsumer
- type OidcAuthProvider
- type OidcClientConfig
- type OidcServerConfig
- type ServerConfig
- type Setter
- type TokenAuthSetterVerifier
- func (auth *TokenAuthSetterVerifier) SetLogin(loginMsg *msg.Login) (err error)
- func (auth *TokenAuthSetterVerifier) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) error
- func (auth *TokenAuthSetterVerifier) SetPing(pingMsg *msg.Ping) error
- func (auth *TokenAuthSetterVerifier) VerifyLogin(loginMsg *msg.Login) error
- func (auth *TokenAuthSetterVerifier) VerifyNewWorkConn(newWorkConnMsg *msg.NewWorkConn) error
- func (auth *TokenAuthSetterVerifier) VerifyPing(pingMsg *msg.Ping) error
- type TokenConfig
- type Verifier
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseConfig ¶
type BaseConfig struct {
// AuthenticationMethod specifies what authentication method to use to
// authenticate frpc with frps. If "token" is specified - token will be
// read into login message. If "oidc" is specified - OIDC (Open ID Connect)
// token will be issued using OIDC settings. By default, this value is "token".
AuthenticationMethod string `ini:"authentication_method" json:"authentication_method"`
// AuthenticateHeartBeats specifies whether to include authentication token in
// heartbeats sent to frps. By default, this value is false.
AuthenticateHeartBeats bool `ini:"authenticate_heartbeats" json:"authenticate_heartbeats"`
// AuthenticateNewWorkConns specifies whether to include authentication token in
// new work connections sent to frps. By default, this value is false.
AuthenticateNewWorkConns bool `ini:"authenticate_new_work_conns" json:"authenticate_new_work_conns"`
}
type ClientConfig ¶
type ClientConfig struct {
BaseConfig `ini:",extends"`
OidcClientConfig `ini:",extends"`
TokenConfig `ini:",extends"`
}
func GetDefaultClientConf ¶
func GetDefaultClientConf() ClientConfig
type OidcAuthConsumer ¶
type OidcAuthConsumer struct {
BaseConfig
// contains filtered or unexported fields
}
func NewOidcAuthVerifier ¶
func NewOidcAuthVerifier(baseCfg BaseConfig, cfg OidcServerConfig) *OidcAuthConsumer
func (*OidcAuthConsumer) VerifyLogin ¶
func (auth *OidcAuthConsumer) VerifyLogin(loginMsg *msg.Login) (err error)
func (*OidcAuthConsumer) VerifyNewWorkConn ¶
func (auth *OidcAuthConsumer) VerifyNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (err error)
func (*OidcAuthConsumer) VerifyPing ¶
func (auth *OidcAuthConsumer) VerifyPing(pingMsg *msg.Ping) (err error)
type OidcAuthProvider ¶
type OidcAuthProvider struct {
BaseConfig
// contains filtered or unexported fields
}
func NewOidcAuthSetter ¶
func NewOidcAuthSetter(baseCfg BaseConfig, cfg OidcClientConfig) *OidcAuthProvider
func (*OidcAuthProvider) SetLogin ¶
func (auth *OidcAuthProvider) SetLogin(loginMsg *msg.Login) (err error)
func (*OidcAuthProvider) SetNewWorkConn ¶
func (auth *OidcAuthProvider) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) (err error)
type OidcClientConfig ¶
type OidcClientConfig struct {
// OidcClientID specifies the client ID to use to get a token in OIDC
// authentication if AuthenticationMethod == "oidc". By default, this value
// is "".
OidcClientID string `ini:"oidc_client_id" json:"oidc_client_id"`
// OidcClientSecret specifies the client secret to use to get a token in OIDC
// authentication if AuthenticationMethod == "oidc". By default, this value
// is "".
OidcClientSecret string `ini:"oidc_client_secret" json:"oidc_client_secret"`
// OidcAudience specifies the audience of the token in OIDC authentication
//if AuthenticationMethod == "oidc". By default, this value is "".
OidcAudience string `ini:"oidc_audience" json:"oidc_audience"`
// OidcTokenEndpointURL specifies the URL which implements OIDC Token Endpoint.
// It will be used to get an OIDC token if AuthenticationMethod == "oidc".
// By default, this value is "".
OidcTokenEndpointURL string `ini:"oidc_token_endpoint_url" json:"oidc_token_endpoint_url"`
}
type OidcServerConfig ¶
type OidcServerConfig struct {
// OidcIssuer specifies the issuer to verify OIDC tokens with. This issuer
// will be used to load public keys to verify signature and will be compared
// with the issuer claim in the OIDC token. It will be used if
// AuthenticationMethod == "oidc". By default, this value is "".
OidcIssuer string `ini:"oidc_issuer" json:"oidc_issuer"`
// OidcAudience specifies the audience OIDC tokens should contain when validated.
// If this value is empty, audience ("client ID") verification will be skipped.
// It will be used when AuthenticationMethod == "oidc". By default, this
// value is "".
OidcAudience string `ini:"oidc_audience" json:"oidc_audience"`
// OidcSkipExpiryCheck specifies whether to skip checking if the OIDC token is
// expired. It will be used when AuthenticationMethod == "oidc". By default, this
// value is false.
OidcSkipExpiryCheck bool `ini:"oidc_skip_expiry_check" json:"oidc_skip_expiry_check"`
// OidcSkipIssuerCheck specifies whether to skip checking if the OIDC token's
// issuer claim matches the issuer specified in OidcIssuer. It will be used when
// AuthenticationMethod == "oidc". By default, this value is false.
OidcSkipIssuerCheck bool `ini:"oidc_skip_issuer_check" json:"oidc_skip_issuer_check"`
}
type ServerConfig ¶
type ServerConfig struct {
BaseConfig `ini:",extends"`
OidcServerConfig `ini:",extends"`
TokenConfig `ini:",extends"`
}
func GetDefaultServerConf ¶
func GetDefaultServerConf() ServerConfig
type Setter ¶
type Setter interface {
SetLogin(*msg.Login) error
SetPing(*msg.Ping) error
SetNewWorkConn(*msg.NewWorkConn) error
}
func NewAuthSetter ¶
func NewAuthSetter(cfg ClientConfig) (authProvider Setter)
type TokenAuthSetterVerifier ¶
type TokenAuthSetterVerifier struct {
BaseConfig
// contains filtered or unexported fields
}
func NewTokenAuth ¶
func NewTokenAuth(baseCfg BaseConfig, cfg TokenConfig) *TokenAuthSetterVerifier
func (*TokenAuthSetterVerifier) SetLogin ¶
func (auth *TokenAuthSetterVerifier) SetLogin(loginMsg *msg.Login) (err error)
func (*TokenAuthSetterVerifier) SetNewWorkConn ¶
func (auth *TokenAuthSetterVerifier) SetNewWorkConn(newWorkConnMsg *msg.NewWorkConn) error
func (*TokenAuthSetterVerifier) SetPing ¶
func (auth *TokenAuthSetterVerifier) SetPing(pingMsg *msg.Ping) error
func (*TokenAuthSetterVerifier) VerifyLogin ¶
func (auth *TokenAuthSetterVerifier) VerifyLogin(loginMsg *msg.Login) error
func (*TokenAuthSetterVerifier) VerifyNewWorkConn ¶
func (auth *TokenAuthSetterVerifier) VerifyNewWorkConn(newWorkConnMsg *msg.NewWorkConn) error
func (*TokenAuthSetterVerifier) VerifyPing ¶
func (auth *TokenAuthSetterVerifier) VerifyPing(pingMsg *msg.Ping) error
type TokenConfig ¶
type TokenConfig struct {
// Token specifies the authorization token used to create keys to be sent
// to the server. The server must have a matching token for authorization
// to succeed. By default, this value is "".
Token string `ini:"token" json:"token"`
}
type Verifier ¶
type Verifier interface {
VerifyLogin(*msg.Login) error
VerifyPing(*msg.Ping) error
VerifyNewWorkConn(*msg.NewWorkConn) error
}
func NewAuthVerifier ¶
func NewAuthVerifier(cfg ServerConfig) (authVerifier Verifier)
Click to show internal directories.
Click to hide internal directories.