johnriveragonzalez / saml2-okta
Filament panel plugin for SAML2 SSO authentication with Okta and other identity providers
Requires
- php: ^8.2
- filament/filament: ^5.0
- laravel/socialite: ^5.0
- socialiteproviders/manager: ^4.0
- socialiteproviders/saml2: ^4.7
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.7|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
README
Complete SAML2 SSO authentication for Filament panels — optimized for Okta, compatible with any SAML2 identity provider.
Panel plugin that adds SAML2 single sign-on to your Filament admin panel. Configure IdP credentials, certificates, user mapping, and a login button — all from the Filament UI. Database-driven configuration (no SAML secrets in .env).
Built following the official Filament plugin guidelines: PackageServiceProvider, Filament\Contracts\Plugin, and Schema-based panel pages.
Features
| Feature | Description |
|---|---|
| SAML2 authentication | Full SP-initiated flow with Okta, Azure AD, Google Workspace, Auth0, and any standard SAML2 IdP |
| Filament admin UI | Settings, certificates, field mapper, and debug pages inside your panel |
| Auto certificates | Generate and regenerate SP X.509 certificates from the panel |
| User provisioning | Auto-create/update users, default roles, external-user flag |
| Field mapper | Visual mapping from SAML attributes to your User model |
| Login button | Injected via render hook with provider icons (Okta, Microsoft, Google, Auth0) or Heroicons |
| Debug mode | Detailed SAML logs for troubleshooting |
| Translations | English and Spanish included |
| Dark mode | Compatible with Filament light/dark themes |
Requirements
| Branch | Filament | Laravel | PHP |
|---|---|---|---|
master / 5.x |
5.x | 11+ / 12+ | 8.2+ |
4.x |
4.x | 11+ | 8.2+ |
Installation
1. Install via Composer
# Filament 5.x composer require johnriveragonzalez/saml2-okta:^2.0 # Filament 4.x composer require johnriveragonzalez/saml2-okta:^2.0 --prefer-source # Require branch 4.x in your composer.json if needed
2. Publish migrations and migrate
php artisan vendor:publish --tag="saml2-okta-migrations"
php artisan migrate
3. Register the plugin
In app/Providers/Filament/AdminPanelProvider.php:
use JohnRiveraGonzalez\Saml2Okta\Saml2OktaPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ Saml2OktaPlugin::make(), ]); }
4. Run the installer
php artisan saml2-okta:install
This command extends your User model, updates UserResource, and completes the initial setup.
5. Optional publishes
php artisan vendor:publish --tag="saml2-okta-translations" php artisan vendor:publish --tag="saml2-okta-config"
Configuration
Open SAML2 → Configuración SAML2 in your Filament panel.
Main settings
Identity provider (Okta / IdP)
| Field | Description |
|---|---|
| Client ID | Application client ID from your IdP |
| Client Secret | Application secret (optional update on save) |
| IDP Entity ID | Entity ID from Okta or your IdP |
| IDP SSO URL | Single sign-on URL |
| IDP X.509 Certificate | IdP public certificate |
Service provider (your app)
| Field | Description |
|---|---|
| SP Entity ID | Auto-generated metadata URL |
| Callback URL | https://your-domain.com/saml2/callback |
| SP Certificate / Private Key | Generate from the panel or paste your own |
User settings
- Auto-create users on first login
- Auto-update existing users
- Default role for new SAML users
- Mark users as external
Login button
- Toggle SAML2 login on/off
- Custom button label and icon (Okta, Microsoft, Google, Auth0, or Heroicons)
Debug & field mapper
- Enable debug logging to inspect SAML attributes
- Map IdP fields to
Usercolumns with live sample data
Production checklist
- Use HTTPS — SAML2 requires TLS in production.
- Set
APP_URLto your real domain. - Register callback URL in your IdP:
https://your-domain.com/saml2/callback - Upload SP metadata or certificate to your IdP.
- Disable debug mode after testing.
- Run
php artisan optimizeafter deployment.
Artisan commands
php artisan saml2-okta:install
php artisan saml2-okta:extend-user-model
php artisan saml2-okta:extend-user-resource
php artisan saml2-okta:unregister-middleware # legacy upgrades only
Package structure
src/
├── Commands/
├── Controllers/
├── Models/
├── Pages/
├── Services/
├── Saml2OktaPlugin.php
└── Saml2OktaServiceProvider.php
database/migrations/
resources/views/
routes/web.php
lang/en|es/
Compatible identity providers
With bundled icons: Okta, Microsoft / Azure AD, Google Workspace, Auth0
Also compatible: OneLogin, Ping Identity, Shibboleth, ADFS, and any SAML2-compliant IdP.
Contributing
Issues and pull requests are welcome at github.com/Johnrivera7/filamentSaml2Okta.
License
MIT © John Rivera Gonzalez
Español
Plugin completo de autenticación SAML2 para paneles Filament. Instalación, configuración de Okta/IdP, certificados, mapeo de campos y botón de login desde la interfaz de administración. Compatible con Filament 4.x y 5.x. Ver secciones anteriores para instalación detallada.





