2017 © Pedro Peláez
 

library laravel-scim-server

Laravel Package for creating a SCIM server

image

arietimmerman/laravel-scim-server

Laravel Package for creating a SCIM server

  • Tuesday, July 3, 2018
  • by arietimmerman
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 100 % Grown

The README.md

Latest Stable Version Total Downloads, (*1)

Logo of Laravel SCIM Server, the SCIM server implementation from scim.dev, SCIM Playground, (*2)

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 basic functionalities., (*3)

This implementation is used by The SCIM Playground and is therefore one of the most widely tested SCIM servers available., (*4)

Installation

Simply run:, (*5)

composer require arietimmerman/laravel-scim-server

And optionally, (*6)

php artisan vendor:publish --tag=laravel-scim

Routes

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}

Configuration

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; } }

Security & App Integration

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)

Turn off automatic publishing of routes

Modify config/scim.php like this:, (*12)

<?php
return [
    "publish_routes" => false
];

Next, explicitly publish your routes with your choice of middleware

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();
});


Test server

docker-compose up

Now visit http://localhost:18123/scim/v2/Users., (*14)

The Versions

03/07 2018

dev-master

9999999-dev

Laravel Package for creating a SCIM server

  Sources   Download

MIT

The Requires

 

The Development Requires

by Arie Timmerman