PHPackages                             ilbee/okta-event - 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. ilbee/okta-event

ActiveSymfony-bundle[API Development](/categories/api)

ilbee/okta-event
================

Symfony bundle that integrates Okta webhooks and dispatches typed Symfony events.

v1.0.1(3mo ago)00[15 issues](https://github.com/ilbee/okta-event/issues)[1 PRs](https://github.com/ilbee/okta-event/pulls)MITPHPPHP &gt;=8.4CI passing

Since Mar 26Pushed 3mo agoCompare

[ Source](https://github.com/ilbee/okta-event)[ Packagist](https://packagist.org/packages/ilbee/okta-event)[ RSS](/packages/ilbee-okta-event/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (2)Dependencies (36)Versions (8)Used By (0)

Okta Event Bundle
=================

[](#okta-event-bundle)

[![CI](https://github.com/ilbee/okta-event/actions/workflows/ci.yml/badge.svg)](https://github.com/ilbee/okta-event/actions/workflows/ci.yml)[![PHP](https://camo.githubusercontent.com/bcfcc7281b9c3db243d093e8e18390ff4cb819681e0bd3b814da0e989fbd13d7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e342532422d383839324246)](https://www.php.net/)[![Symfony](https://camo.githubusercontent.com/cf6a201e7df07d603099ecc6de8db6ff65ba8856e2cad252b891cf5fec1b516a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d362e34253230253743253230372e782d626c61636b)](https://symfony.com/)[![PHPStan](https://camo.githubusercontent.com/af58509b7d9764c4b6217f44ea2222b4ffde6bc1187781a3f08d7f7636731db7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d4c6576656c25323031302d627269676874677265656e)](https://phpstan.org/)[![License](https://camo.githubusercontent.com/d6bc2b26794002c24d023acaab01b6dbb953c57ab9cb80ba5b8aa2f2bd5de99a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c7565)](LICENSE)

A Symfony bundle that receives [Okta Event Hooks](https://developer.okta.com/docs/concepts/event-hooks/) and dispatches typed Symfony events you can listen to in your application.

Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Installation](#installation)
- [Configuration](#configuration)
- [Okta Setup](#okta-setup)
- [Usage](#usage)
- [Security Recommendations](#security-recommendations)
- [Contributing](#contributing)
- [License](#license)
- [Full Documentation](docs/index.md)

Features
--------

[](#features)

- Automatic webhook endpoint registration (GET verification + POST processing)
- **200+ typed events** covering the full Okta Event Hook catalog:

CategoryExamplesUser Lifecycleactivate, create, deactivate, suspend, delete, password reset, profile updateUser Authenticationsession start/end, MFA enroll/reset, SSO, password change, account lockGroup Managementmember add/remove, group create/delete, profile updateApplicationuser assign/unassign, app create/activate/deactivate, OAuth2 consentAdmin Privilegesrole grant/revoke, IAM resource set/role/permission changesSecurityrisk detection, breached credentials, suspicious activity, session context changePolicypolicy/rule activate/deactivate/update, trusted server changesDevicedevice enroll/activate/suspend/delete, device trust, user add/removeAccess Requestrequest create/resolve/reject/expire, conditions, sequencesAnd more...IdP lifecycle, log streams, inline hooks, rate limits, certifications, entitlements- Duplicate event detection (pluggable store, cache-based or null)
- Configurable payload size and event count limits
- `GenericOktaEvent` fallback for unhandled event types

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

[](#installation)

```
composer require ilbee/okta-event
```

If you don't use Symfony Flex, register the bundle manually in `config/bundles.php`:

```
Ilbee\Okta\Event\OktaEventBundle::class => ['all' => true],
```

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

[](#configuration)

```
# config/packages/okta_event.yaml
okta_event:
  # Required - shared secret configured in the Okta Event Hook
  webhook_secret: '%env(OKTA_WEBHOOK_SECRET)%'

  # Optional - defaults shown
  # route: '/okta/webhook'
  # verification_enabled: true
  # max_payload_size: 1048576      # 1 MB
  # max_events_per_request: 100
```

Okta Setup
----------

[](#okta-setup)

1. In Okta Admin, go to **Workflow &gt; Event Hooks &gt; Create Event Hook**.
2. Set the **URL** to your endpoint (e.g. `https://example.com/okta/webhook`).
3. Set **Authentication field** to `X-Auth-Token` and provide the same secret as `webhook_secret`.
4. Subscribe to the events you need.
5. Save — Okta sends a one-time GET verification that the bundle handles automatically. You can disable it afterwards with `verification_enabled: false`.

Usage
-----

[](#usage)

Listen to any typed event using Symfony's `#[AsEventListener]`:

```
use Ilbee\Okta\Event\Event\UserLifecycle\OktaUserDeactivatedEvent;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;

#[AsEventListener]
class OnUserDeactivated
{
    public function __invoke(OktaUserDeactivatedEvent $event): void
    {
        $email = $event->userEmail;
        $actor = $event->actor;
        // ...
    }
}
```

You can also listen to group-level events to handle an entire category:

```
use Ilbee\Okta\Event\Event\UserLifecycle\OktaUserLifecycleEvent;

#[AsEventListener]
class OnAnyUserLifecycleChange
{
    public function __invoke(OktaUserLifecycleEvent $event): void
    {
        // Fired for any user.lifecycle.* event
    }
}
```

For unknown/unhandled event types, a `GenericOktaEvent` is dispatched as fallback:

```
use Ilbee\Okta\Event\Event\GenericOktaEvent;

#[AsEventListener]
class OnUnknownOktaEvent
{
    public function __invoke(GenericOktaEvent $event): void
    {
        $rawEvent = $event->oktaEvent; // OktaEvent DTO with full payload
    }
}
```

Security Recommendations
------------------------

[](#security-recommendations)

For production, restrict traffic to [Okta's IP ranges](https://developer.okta.com/docs/reference/ip-addresses/) at the reverse proxy level:

```
location /okta/webhook {
    allow 100.21.118.0/24;
    allow 52.2.12.0/24;
    deny all;
    proxy_pass http://your-app;
}
```

Contributing
------------

[](#contributing)

```
composer install
vendor/bin/phpunit
vendor/bin/phpstan analyse
vendor/bin/php-cs-fixer check ./src --diff --allow-risky=yes
```

License
-------

[](#license)

[MIT](LICENSE)

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance82

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~0 days

Total

2

Last Release

90d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/30441946?v=4)[ilbee](/maintainers/ilbee)[@ilbee](https://github.com/ilbee)

---

Top Contributors

[![ilbee](https://avatars.githubusercontent.com/u/30441946?v=4)](https://github.com/ilbee "ilbee (5 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ilbee-okta-event/health.svg)

```
[![Health](https://phpackages.com/badges/ilbee-okta-event/health.svg)](https://phpackages.com/packages/ilbee-okta-event)
```

###  Alternatives

[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1615.6k12](/packages/2lenet-crudit-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.8M712](/packages/sylius-sylius)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.4M518](/packages/shopware-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[web-auth/webauthn-framework

FIDO2/Webauthn library for PHP and Symfony Bundle.

51390.8k2](/packages/web-auth-webauthn-framework)[chameleon-system/chameleon-base

The Chameleon System core.

1027.9k4](/packages/chameleon-system-chameleon-base)

PHPackages © 2026

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