feat(go): add verify method for okta idp client;

This commit is contained in:
Vishal Dalwadi 2025-07-30 19:29:47 +05:30
parent 99f1be4aba
commit 0c43dd3788
2 changed files with 20 additions and 6 deletions

View file

@ -82,7 +82,7 @@ func SyncFromIDP() error {
case "azure-ad":
idpClient = azure.NewAzureEntraIDClientFromSettings()
case "okta":
idpClient, err = okta.NewOktaClient()
idpClient, err = okta.NewOktaClientFromSettings()
if err != nil {
return err
}

View file

@ -12,12 +12,10 @@ type Client struct {
client *okta.APIClient
}
func NewOktaClient() (*Client, error) {
settings := logic.GetServerSettings()
func NewOktaClient(oktaOrgURL, oktaAPIToken string) (*Client, error) {
config, err := okta.NewConfiguration(
okta.WithOrgUrl(settings.OktaOrgURL),
okta.WithToken(settings.OktaAPIToken),
okta.WithOrgUrl(oktaOrgURL),
okta.WithToken(oktaAPIToken),
)
if err != nil {
return nil, err
@ -28,6 +26,22 @@ func NewOktaClient() (*Client, error) {
}, nil
}
func NewOktaClientFromSettings() (*Client, error) {
settings := logic.GetServerSettings()
return NewOktaClient(settings.OktaOrgURL, settings.OktaAPIToken)
}
func (o *Client) Verify() error {
_, _, err := o.client.UserAPI.ListUsers(context.TODO()).Limit(1).Execute()
if err != nil {
return err
}
_, _, err = o.client.GroupAPI.ListGroups(context.TODO()).Limit(1).Execute()
return err
}
func (o *Client) GetUsers() ([]idp.User, error) {
var retval []idp.User
var allUsersFetched bool