dev-master
9999999-devLaravel Package for creating a SCIM server
MIT
The Requires
The Development Requires
by Arie Timmerman
Laravel Package for creating a SCIM server
, (*2)
Add SCIM 2.0 Server capabilities to your Laravel application with ease. This package requires minimal configuration to get started with basic functionalities., (*3)
This implementation is used by The SCIM Playground and is therefore one of the most widely tested SCIM servers available., (*4)
Simply run:, (*5)
composer require arietimmerman/laravel-scim-server
And optionally, (*6)
php artisan vendor:publish --tag=laravel-scim
Method | Path |
---|---|
GET\ | HEAD | / |
GET\ | HEAD | scim/v1 |
GET\ | HEAD | scim/v1/{fallbackPlaceholder} |
POST | scim/v2/.search |
POST | scim/v2/Bulk |
GET\ | HEAD | scim/v2/ResourceTypes |
GET\ | HEAD | scim/v2/ResourceTypes/{id} |
GET\ | HEAD | scim/v2/Schemas |
GET\ | HEAD | scim/v2/Schemas/{id} |
GET\ | HEAD | scim/v2/ServiceProviderConfig |
GET\ | HEAD | scim/v2/{fallbackPlaceholder} |
GET\ | HEAD | scim/v2/{resourceType} |
POST | scim/v2/{resourceType} |
POST | scim/v2/{resourceType}/.search |
GET\ | HEAD | scim/v2/{resourceType}/{resourceObject} |
PUT | scim/v2/{resourceType}/{resourceObject} |
PATCH | scim/v2/{resourceType}/{resourceObject} |
DELETE | scim/v2/{resourceType}/{resourceObject} |
The configuration is retrieved from SCIMConfig::class
., (*7)
Extend this class and register your extension in app/Providers/AppServiceProvider.php
like this., (*8)
~~~.php $this->app->singleton('ArieTimmerman\Laravel\SCIMServer\SCIMConfig', YourCustomSCIMConfig::class);, (*9)
## An example override Here's one way to override the default configuration without copying too much of the SCIMConfig file into your app. ~~~.php <?php class YourCustomSCIMConfig extends \ArieTimmerman\Laravel\SCIMServer\SCIMConfig { public function getUserConfig() { $config = parent::getUserConfig(); // Modify the $config variable however you need... return $config; } }
By default, this package does no security checks on its own. This can be dangerous, in that a functioning SCIM Server can view, add, update, delete, or list users. You are welcome to implement your own security checks at the middleware layer, or somehow/somewhere else that makes sense for your application. But make sure to do something., (*10)
If you want to integrate into already existing middleware, you'll want to take the following steps -, (*11)
Modify config/scim.php
like this:, (*12)
<?php return [ "publish_routes" => false ];
In either your RouteServiceProvider, or in a particular route file, add the following:, (*13)
use ArieTimmerman\Laravel\SCIMServer\RouteProvider as SCIMServerRouteProvider; SCIMServerRouteProvider::publicRoutes(); // Make sure to add public routes *first* Route::middleware('auth:api')->group(function () { // or any other middleware you choose SCIMServerRouteProvider::routes( [ 'public_routes' => false // but do not hide public routes (metadata) behind authentication ] ); SCIMServerRouteProvider::meRoutes(); });
docker-compose up
Now visit http://localhost:18123/scim/v2/Users
., (*14)
Laravel Package for creating a SCIM server
MIT