arietimmerman/laravel-scim-server
Add a SCIM 2.0 server to Laravel apps for automated user and group provisioning. Exposes standard REST endpoints so identity providers like Okta, Azure AD, and OneLogin can securely sync users, groups, and attributes.
limosa-io/laravel-scim-server gives a Laravel app a SCIM 2.0 endpoint surface (Users, Groups, PATCH, filter) so IdPs like Okta, Entra ID, OneLogin, or Google Workspace can push provisioning changes automatically. This unblocks the "directory sync" line item that enterprise buyers routinely gate contracts on.filter in a SCIM list request could widen results beyond the intended tenant/scope. For a PM this is a security-relevant patch — treat it as a forced upgrade, not an optional one, and confirm the upstream project treats filter injection as a security boundary before you rely on it for tenant isolation.Consider adopting when:
Look elsewhere when:
For executives: We can close the "automated user provisioning" gap that shows up in enterprise security reviews without buying a per-seat identity platform. This package adds SCIM 2.0 endpoints to our existing Laravel app, so Okta/Entra can create, update, and — critically — deactivate accounts automatically. That removes a manual offboarding step that is both a support cost and an audit exposure. The trade-off is that we self-host and self-patch it rather than paying for a supported vendor, so we need a named owner for dependency updates.
For engineering: It's a Laravel-native SCIM 2.0 server — routes, controllers, resource models, filter parsing — that slots into our existing auth and middleware rather than running beside it. v1.5.3 is a targeted security fix: OR filter terms are now grouped so a client-supplied SCIM filter can't escape the base query constraints. Wire it so every SCIM query is scoped through our tenant/organization constraint at the query-builder level, add regression tests that fire adversarial filter strings (nested ORs, and/or precedence tricks) at list endpoints, and pin the version with an advisory-watch process. Also budget for SCIM conformance testing against each target IdP — implementations differ on PATCH and filtering, and "works with Okta" does not imply "works with Entra."
Ask: approve a spike (1–2 sprints) to integrate against a single IdP, with upgrade to ≥ v1.5.3 as a hard requirement and a tenant-isolation test suite as the exit criterion.
How can I help you explore Laravel packages today?