Documentation
¶
Overview ¶
Package oauth2clientcredentialsauthextension implements `configauth.ClientAuthenticator` This extension provides OAuth2 Client Credentials flow authenticator for HTTP and gRPC based exporters. The extension fetches and refreshes the token after expiry For further details about OAuth2 Client Credentials flow refer https://datatracker.ietf.org/doc/html/rfc6749#section-4.4
Index ¶
- func NewFactory() component.ExtensionFactory
- type ClientCredentialsAuthenticator
- func (o *ClientCredentialsAuthenticator) PerRPCCredentials() (credentials.PerRPCCredentials, error)
- func (o *ClientCredentialsAuthenticator) RoundTripper(base http.RoundTripper) (http.RoundTripper, error)
- func (o *ClientCredentialsAuthenticator) Shutdown(_ context.Context) error
- func (o *ClientCredentialsAuthenticator) Start(_ context.Context, _ component.Host) error
- type Config
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFactory ¶
func NewFactory() component.ExtensionFactory
NewFactory creates a factory for the OIDC Authenticator extension.
Types ¶
type ClientCredentialsAuthenticator ¶
type ClientCredentialsAuthenticator struct {
// contains filtered or unexported fields
}
ClientCredentialsAuthenticator provides implementation for providing client authentication using OAuth2 client credentials workflow for both gRPC and HTTP clients.
func (*ClientCredentialsAuthenticator) PerRPCCredentials ¶
func (o *ClientCredentialsAuthenticator) PerRPCCredentials() (credentials.PerRPCCredentials, error)
PerRPCCredentials returns gRPC PerRPCCredentials that supports "client-credential" OAuth flow. The underneath oauth2.clientcredentials.Config instance will manage tokens performing auto refresh as necessary.
func (*ClientCredentialsAuthenticator) RoundTripper ¶
func (o *ClientCredentialsAuthenticator) RoundTripper(base http.RoundTripper) (http.RoundTripper, error)
RoundTripper returns oauth2.Transport, an http.RoundTripper that performs "client-credential" OAuth flow and also auto refreshes OAuth tokens as needed.
type Config ¶
type Config struct { config.ExtensionSettings `mapstructure:",squash"` // ClientID is the application's ID. // See https://datatracker.ietf.org/doc/html/rfc6749#section-2.2 ClientID string `mapstructure:"client_id"` // ClientSecret is the application's secret. // See https://datatracker.ietf.org/doc/html/rfc6749#section-2.3.1 ClientSecret string `mapstructure:"client_secret"` // TokenURL is the resource server's token endpoint // URL. This is a constant specific to each server. // See https://datatracker.ietf.org/doc/html/rfc6749#section-3.2 TokenURL string `mapstructure:"token_url"` // Scope specifies optional requested permissions. // See https://datatracker.ietf.org/doc/html/rfc6749#section-3.3 Scopes []string `mapstructure:"scopes,omitempty"` // TLSSetting struct exposes TLS client configuration for the underneath client to authorization server. TLSSetting configtls.TLSClientSetting `mapstructure:"tls,omitempty"` // Timeout parameter configures `http.Client.Timeout` for the underneath client to authorization // server while fetching and refreshing tokens. Timeout time.Duration `mapstructure:"timeout,omitempty"` }
Config stores the configuration for OAuth2 Client Credentials (2-legged OAuth2 flow) setup.