Download the PHP package arietimmerman/laravel-scim-server without Composer
On this page you can find all versions of the php package arietimmerman/laravel-scim-server. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download arietimmerman/laravel-scim-server
More information about arietimmerman/laravel-scim-server
Files in arietimmerman/laravel-scim-server
Package laravel-scim-server
Short Description Laravel Package for creating a SCIM server
License MIT
Informations about the package laravel-scim-server
SCIM 2.0 Server implementation for Laravel
Add SCIM 2.0 Server capabilities to your Laravel application with ease. This package requires minimal configuration to get started with the core SCIM flows and is powering The SCIM Playground, one of the most widely tested SCIM servers available.
Why Laravel SCIM Server?
- Battle-tested with real-world providers through the SCIM Playground
- Familiar Laravel tooling and middleware integration
- Fully extensible configuration for resources, attributes, and filtering
- Ships with dockerized demo and an expressive test suite
Table of contents
- Quick start
- Installation
- SCIM routes
- Configuration
- Security & app integration
- Test server
- Contributing & support
Quick start
Spin up a SCIM test server in seconds:
Visit http://localhost:8000/scim/v2/Users (or /Groups, /Schemas, /ResourceTypes, etc.) to exercise the API.
Installation
Add the package to your Laravel app:
Optionally publish the config for fine-grained control:
If you need to add SCIM-specific columns (formatted, active, roles) to your users table, publish the migrations:
Note: These migrations are optional. Only publish them if your SCIM implementation requires these specific fields in your users table.
SCIM routes
| Method | Path | Description |
|---|---|---|
| GET | /scim/v1 | SCIM 1.x compatibility message (returns error with upgrade guidance) |
| GET | /scim/v2 | Cross-resource index (alias of /scim/v2/) |
| GET | /scim/v2/ | Cross-resource index |
| POST | /scim/v2/.search | Cross-resource search across all types |
| POST | /scim/v2/Bulk | SCIM bulk operations |
| GET | /scim/v2/ResourceTypes | List available resource types |
| GET | /scim/v2/ResourceTypes/{id} | Retrieve a specific resource type |
| GET | /scim/v2/Schemas | List SCIM schemas |
| GET | /scim/v2/Schemas/{id} | Retrieve a specific schema |
| GET | /scim/v2/ServiceProviderConfig | Discover server capabilities |
| GET | /scim/v2/{resourceType} | List resources of a given type |
| POST | /scim/v2/{resourceType} | Create a new resource |
| POST | /scim/v2/{resourceType}/.search | Filter resources of a given type |
| GET | /scim/v2/{resourceType}/{resourceObject} | Retrieve a single resource |
| PUT | /scim/v2/{resourceType}/{resourceObject} | Replace a resource |
| PATCH | /scim/v2/{resourceType}/{resourceObject} | Update a resource |
| DELETE | /scim/v2/{resourceType}/{resourceObject} | Delete a resource |
Optional "Me" routes can be enabled separately:
| Method | Path | Description |
|---|---|---|
| GET | /scim/v2/Me | Retrieve the SCIM resource for the authenticated subject |
| PUT | /scim/v2/Me | Replace the SCIM resource for the authenticated subject |
| POST | /scim/v2/Me | Create the authenticated subject (requires RouteProvider::meRoutePost()) |
Configuration
The SCIM server can be customized using configuration options in config/scim.php:
You can override these in your .env file:
Or pass as Docker environment variables:
If you need more control, you can disable route auto-publishing and register the routes manually:
Resource Configuration
The package resolves configuration via SCIMConfig::class. Extend it to tweak resource definitions, attribute mappings, filters, or pagination defaults.
Register your custom config in app/Providers/AppServiceProvider.php:
Minimal override example:
Pagination settings
Cursor-based pagination is enabled by default via the SCIM cursor pagination draft. Publish the config file and update config/scim.php to adjust defaults:
Security & app integration
SCIM grants the ability to view, add, update, and delete users or groups. Make sure you secure the routes before shipping to production.
You have two approaches to securing your SCIM endpoints:
Option 1: Configure middleware via config
The simplest approach is to set middleware in your config:
Or via environment variables:
Option 2: Manual route registration
For more control, disable automatic route publishing:
Then re-register the routes with your preferred middleware and configuration:
Test server
Bring up the full demo stack with Docker Compose:
Browse to http://localhost:18123/scim/v2/Users to explore the API and run the test suite.
Contributing & support
- Issues and pull requests are welcome on GitHub
- Found this package helpful? Give it a star on GitHub so others can discover it faster
- If you would like to support this module, please buy a Pro subscription on SCIM Playground
All versions of laravel-scim-server with dependencies
illuminate/database Version ^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/console Version ^10.0|^11.0|^12.0|^13.0