PHPackages                             nzta/silverstripe-okta-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. nzta/silverstripe-okta-api

AbandonedArchivedSilverstripe-vendormodule[API Development](/categories/api)

nzta/silverstripe-okta-api
==========================

Integration with the Okta API

2.1.0(3y ago)25506BSD-3-ClausePHP

Since Oct 10Pushed 2y agoCompare

[ Source](https://github.com/NZTA/silverstripe-okta-api)[ Packagist](https://packagist.org/packages/nzta/silverstripe-okta-api)[ Docs](https://github.com/NZTA/silverstripe-okta-api)[ RSS](/packages/nzta-silverstripe-okta-api/feed)WikiDiscussions master Synced today

READMEChangelog (2)Dependencies (7)Versions (9)Used By (0)

Okta API
========

[](#okta-api)

Provides the ability to integrate with the Okta API and sync users and groups from Okta into your SilverStripe database.

Documentation for the Okta Users API can be found [here](http://developer.okta.com/docs/api/resources/users.html)Documentation for the Okta Groups API can be found [here](https://developer.okta.com/docs/api/resources/groups.html)

Requirements
------------

[](#requirements)

SilverStripe 4.x

Features
--------

[](#features)

- Queued job to sync users from Okta into SilverStripe
- Queued job to sync groups from Okta into SilverStripe
- Configurable reschedule time for queued job (to sync at user defined intervals)
- Configurable mapping of SilverStripe database fields to Okta API fields
- Configurable cache lifetime for [List Users API](http://developer.okta.com/docs/api/resources/users.html#list-users)
- Configurable list of [statuses](http://developer.okta.com/docs/api/resources/users.html#user-status) to sync across
- CMS configurable filters to define which groups to store from the sync groups job

Installation
------------

[](#installation)

```
composer require nzta/silverstripe-okta-api

```

And you will need to add the following constants to your `.env` file:

```
SS_OKTA_GATEWAY_REST_URL="https://.okta.com/api/v1/"
SS_OKTA_API_TOKEN=""

```

Where `{organisation}` is your organisation's Okta sub domain and `{token}` is your API token which can be generated by following these [instructions](http://developer.okta.com/docs/api/getting_started/getting_a_token.html).

Configuration
-------------

[](#configuration)

You can update your Member field mapping by adding the following to your `mysite/_config/config.yml`:

```
OktaProfileMemberExtension:
  okta_ss_member_fields_name_map:
    CustomField: 'customField'
    ExtraCustomField: 'profile.extraCustomField'

```

Where the `CustomField` and `ExtraCustomField` are the SilverStripe Member database field names and `customField` and `profile.extraCustomField` are the keys in the object returned from the Okta API for each user. The dot notation in `profile.extraCustomField` allows you to map to fields nested one level deep, e.g. the `extraCustomField` key inside of a `profile` top level key.

Note: This replaces the default configuration so you will have to include the original Member fields, e.g. FirstName, Surname and Email, if they are required to be synced.

You can add/update additional queue jobs by adding the following to your `mysite/_config/config.yml`:

```
SyncOktaUsersJob:
  additional_job_list:
     - 'AdditionalFirstJob'
     - 'AdditionalSecondJob'

```

Where the `AdditionalFirstJob` and `AdditionalSecondJob` are the additional SilverStripe QueuedJobs that you can run after the primary job (`SyncOktaUsersJob`) finishes. You can set the `public $schedule_after`static to delay when the additional jobs kicks off. Eg. setting `public $schedule_after = 30` would mean additional job would start 30 seconds after the main job finishes.

### Okta Group Filters

[](#okta-group-filters)

You can create filters in the CMS that define which groups should be saved into the SilverStripe database. These work by defining a key/value pair which a group from the Okta API should match. These filters are configured to be matched using an *OR* style filter, so you can create multiple filters and each group from the Okta API just needs to match one of the filters.

These filters can be created in the Okta Group Filters ModelAdmin and each filter has a `Filter` and `Value` field which maps to the key/value pair respectively.

###  Health Score

33

↑

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~212 days

Recently: every ~330 days

Total

8

Last Release

1285d ago

Major Versions

1.0.0 → 2.0.02018-10-31

### Community

Maintainers

![](https://www.gravatar.com/avatar/ff99459f7f2ca26bdf0fa8e4b43a971c28d8f2bf6f588eda2d239a6a8bf5b7ee?d=identicon)[NZTA](/maintainers/NZTA)

---

Top Contributors

[![ishannz](https://avatars.githubusercontent.com/u/20032948?v=4)](https://github.com/ishannz "ishannz (12 commits)")[![phalkunz](https://avatars.githubusercontent.com/u/318116?v=4)](https://github.com/phalkunz "phalkunz (6 commits)")[![StephenMakrogianni](https://avatars.githubusercontent.com/u/42820868?v=4)](https://github.com/StephenMakrogianni "StephenMakrogianni (4 commits)")[![Cambis](https://avatars.githubusercontent.com/u/12287346?v=4)](https://github.com/Cambis "Cambis (3 commits)")[![NightJar](https://avatars.githubusercontent.com/u/778003?v=4)](https://github.com/NightJar "NightJar (2 commits)")[![satrun77](https://avatars.githubusercontent.com/u/166450?v=4)](https://github.com/satrun77 "satrun77 (2 commits)")[![ichaber](https://avatars.githubusercontent.com/u/929858?v=4)](https://github.com/ichaber "ichaber (1 commits)")[![robbyahn](https://avatars.githubusercontent.com/u/2970208?v=4)](https://github.com/robbyahn "robbyahn (1 commits)")

---

Tags

silverstripecmsokta

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/nzta-silverstripe-okta-api/health.svg)

```
[![Health](https://phpackages.com/badges/nzta-silverstripe-okta-api/health.svg)](https://phpackages.com/packages/nzta-silverstripe-okta-api)
```

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.2M720](/packages/statamic-cms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
