dskripchenko / laravel-admin-oidc
Sign in to dskripchenko/laravel-admin panels with OpenID Connect β Keycloak, Microsoft Entra ID, ADFS, Authentik or any OIDC provider: account provisioning, role mapping, per-tenant providers.
Package info
github.com/dskripchenko/laravel-admin-oidc
pkg:composer/dskripchenko/laravel-admin-oidc
Requires
- php: ^8.2
- dskripchenko/laravel-admin: ^1.51
- firebase/php-jwt: ^7.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.18
- orchestra/testbench: ^9.0 || ^10.0 || ^11.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0 || ^12.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-14 12:18:19 UTC
README
π English Β· Π ΡΡΡΠΊΠΈΠΉ Β· Deutsch Β· δΈζ
Sign in to dskripchenko/laravel-admin
panels with OpenID Connect β Keycloak, Microsoft Entra ID, ADFS, Authentik,
Okta or any OIDC provider. Plain OIDC, no provider-specific code: the
differences between providers are settings.
- "Sign in with β¦" on the login page, under the password form, which stays.
- Accounts created on the first sign-in; an existing account with the same email is taken over only when the provider verified the email.
- Roles from the provider: claim values (
realm_access.roles,groups, β¦) mapped to panel roles, replaced at every sign-in. No mapped role β no way in. - Several panels, per-tenant providers: the panel's own provider, or a
tenant's behind a link of its own (
/{panel}/sso/to/{tenant}), through three small contracts the host implements. - Checked the way OIDC Core asks: Authorization Code + PKCE (S256),
stateandnonce, the ID token verified against the provider's JWKS (asymmetric algorithms only, key rotation followed), issuer, audience, expiry. Requests to the provider go through an address policy (https, private networks refused unless whitelisted). - Optional MFA requirement from the provider's
amrclaim.
Install
composer require dskripchenko/laravel-admin-oidc php artisan migrate
Requires laravel-admin 1.50+. The plugin registers itself through package discovery; the providers are managed in the panel, System β SSO providers. To publish the config:
php artisan vendor:publish --tag=admin-oidc-config
Documentation
- Getting started β install, a provider, Keycloak step by step, role mapping
- Tenants and contracts β per-tenant providers, custom user provisioning and role catalogs
- Security β what is checked, the network policy, MFA
Security
Report vulnerabilities privately β see SECURITY.md.
License
MIT β see LICENSE. The ID tokens are verified with
firebase/php-jwt (BSD-3-Clause).