Andrew Blosser
Andrew Blosser

Reputation: 43

Okta Api User Directory

Using the okta API, we're trying to display a simple staff directory. Basically we want to list all active users in a particular group on a web page.

Seems like it should be super simple.

If I use the user endpoint, I can get all users and filter by status to be active, but I can't seem to filter by group.

If I use the group end point, I can get all users in a group, but I can't seem to filter by status.

How should I be going about this?

Edit: Added my api calls

method 1

$filters = 'status eq "ACTIVE"';

$c = curl_init("https://wvuf.okta.com/api/v1/users?filter=".urlencode($filters));

method 2

$c = curl_init("https://wvuf.okta.com/api/v1/groups/xxxxGROUPIDxxxx/users");

Upvotes: 0

Views: 1207

Answers (3)

jeffreyaven
jeffreyaven

Reputation: 246

The ListGroupUsers method in the Groups API for Okta enumerates all users that are a member of a specified group.

Have a look at this tool I created for a project I am on, okta-admin, wraps up the Golang SDK for Okta in an easy to use CLI (which effectively invokes REST API requests...)

okta-admin groups listusers $groupId

I have added the ability to pass filter arguments supported by the API or endpoint as well as a jsonquery argument where you can perform searches or projections client side.

Upvotes: 1

jeffreyaven
jeffreyaven

Reputation: 246

The List Group members (/api/v1/groups/${groupId}/users) endpoint does not support the filter query param

https://developer.okta.com/docs/reference/api/groups/#group-member-operations

One suggestion is to do some client side filtering (eg using jq etc)

Upvotes: 1

Benjamin Wesson
Benjamin Wesson

Reputation: 196

Unfortunately, this is not possible in the current version of the Okta API. As you've surmised, you can either GET all users with an ACTIVE status and then iterate through them to get the groups for each user or GET all users for a specific group and manually filter by status.

The latter method may be preferable because it will amount to fewer calls (assuming there are more users than groups).

Upvotes: 1

Related Questions