Documentation
¶
Overview ¶
Package client provides communication with the Aserto services.
There are two groups of services:
1. client/authorizer provides access to the authorizer service and the edge services running alongside it.
2. client/tenant provides access to the Aserto control plane services.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Connection ¶ added in v0.0.8
type Connection struct { // Conn is the underlying gRPC connection to the backend service. Conn grpc.ClientConnInterface // TenantID is the ID of the Aserto tenant making the connection. TenantID string }
Connection represents a gRPC connection with an Aserto tenenat ID.
The tenant ID is automatically sent to the backend on each request using a ClientInterceptor.
func NewConnection ¶ added in v0.0.8
func NewConnection(ctx context.Context, opts ...ConnectionOption) (*Connection, error)
NewConnection establishes a gRPC connection.
Options ¶
Options can be specified to configure the connection or override default behavior:
1. WithAddr() - sets the server address and port. Default: "authorizer.prod.aserto.com:8443".
2. WithAPIKeyAuth() - sets an API key for authentication.
3. WithTokenAuth() - sets an OAuth2 token to be used for authentication.
4. WithTenantID() - sets the aserto tenant ID.
5. WithInsecure() - enables/disables TLS verification. Default: false.
6. WithCACertPath() - adds the specified PEM certificate file to the connection's list of trusted root CAs.
Timeout ¶
Connection timeout can be set on the specified context using context.WithTimeout. If no timeout is set on the context, the default connection timeout is 5 seconds. For example, to increase the timeout to 10 seconds:
ctx := context.Background() client, err := authorizer.New( context.WithTimeout(ctx, time.Duration(10) * time.Second), aserto.WithAPIKeyAuth("<API Key>"), aserto.WithTenantID("<Tenant ID>"), )
type ConnectionOption ¶
type ConnectionOption func(*ConnectionOptions)
ConnecionOption functions are used to configure ConnectionOptions instances.
func WithAPIKeyAuth ¶
func WithAPIKeyAuth(key string) ConnectionOption
WithAPIKeyAuth uses an Aserto API key to authenticate with the authorizer service.
func WithAddr ¶
func WithAddr(addr string) ConnectionOption
WithAddr overrides the default authorizer server address.
If not specified, Aserto's hosted authorizer at authorizer.prod.aserto.com is used.
func WithCACertPath ¶
func WithCACertPath(path string) ConnectionOption
WithCACertPath treats the specified certificate file as a trusted root CA.
Include it when calling an authorizer service that uses a self-issued SSL certificate.
func WithInsecure ¶
func WithInsecure(insecure bool) ConnectionOption
WithInsecure disables TLS verification.
func WithTenantID ¶
func WithTenantID(tenantID string) ConnectionOption
WithTenantID sets the asserto tenant ID.
func WithTokenAuth ¶
func WithTokenAuth(token string) ConnectionOption
WithTokenAuth uses an OAuth2.0 token to authenticate with the authorizer service.
type ConnectionOptions ¶
type ConnectionOptions struct { // The server's host name and port separated by a colon ("hostname:port"). Address string // Path to a CA certificate file to treat as a root CA for TLS verification. CACertPath string // The tenant ID of your aserto account. TenantID string // Credentials used to authenticate with the authorizer service. Either API Key or OAuth Token. Creds credentials.PerRPCCredentials // If true, skip TLS certificate verification. Insecure bool }
ConnectionOptions holds settings used to establish a connection to the authorizer service.
func NewConnectionOptions ¶
func NewConnectionOptions(opts ...ConnectionOption) *ConnectionOptions
NewConnectionOptions creates a ConnectionOptions object from a collection of ConnectionOption functions.