diff --git a/api/client/client.go b/api/client/client.go index a85ac7bf7234c..7b549e9e7e216 100644 --- a/api/client/client.go +++ b/api/client/client.go @@ -3558,6 +3558,14 @@ func (c *Client) DeleteLoginRule(ctx context.Context, name string) error { return trail.FromGRPC(err) } +// OktaClient returns an Okta client. +// Clients connecting older Teleport versions still get an okta client when +// calling this method, but all RPCs will return "not implemented" errors (as per +// the default gRPC behavior). +func (c *Client) OktaClient() *okta.Client { + return okta.NewClient(oktapb.NewOktaServiceClient(c.conn)) +} + // GetCertAuthority retrieves a CA by type and domain. func (c *Client) GetCertAuthority(ctx context.Context, id types.CertAuthID, loadKeys bool) (types.CertAuthority, error) { ca, err := c.TrustClient().GetCertAuthority(ctx, &trustpb.GetCertAuthorityRequest{ diff --git a/lib/auth/clt.go b/lib/auth/clt.go index f40a0d13a830c..7798ea649d56c 100644 --- a/lib/auth/clt.go +++ b/lib/auth/clt.go @@ -65,8 +65,6 @@ type Client struct { *APIClient // HTTPClient is used to make http requests to the server *HTTPClient - // oktaClient is used to make Okta resoruce requests to the server. - oktaClient services.Okta } // Make sure Client implements all the necessary methods. @@ -125,15 +123,9 @@ func NewClient(cfg client.Config, params ...roundtrip.ClientParam) (*Client, err return nil, trace.Wrap(err) } - oktaClient, err := client.NewOktaClient(cfg.Context, cfg) - if err != nil { - return nil, trace.Wrap(err) - } - return &Client{ APIClient: apiClient, HTTPClient: httpClient, - oktaClient: oktaClient, }, nil } @@ -472,7 +464,7 @@ func (c *Client) ListReleases(ctx context.Context) ([]*types.Release, error) { } func (c *Client) OktaClient() services.Okta { - return c.oktaClient + return c.APIClient.OktaClient() } // WebService implements features used by Web UI clients