Skip to content
Snippets Groups Projects
README.md 10.14 KiB

scim-server-php

This is the Open Provisioning Framework project by audriga which makes use of the SCIM protocol.


Table of Contents

  1. Info
  2. Related projects
  3. Capabilities
  4. Prerequisites
  5. Usage
    1. Get it as a composer dependency
    2. Try out the embedded mock server
      1. Enable JWT authentication
    3. Use scim-server-php for your own project
      1. SCIM resources
      2. SCIM server
    4. Authentication/Authorization
      1. Define your authentication/authorization logic
      2. Define your authentication/authorization middleware
      3. Add your authentication/authorization middleware to the SCIM server
    5. Full example
  6. Acknowledgements

Info

scim-server-php is a PHP library which makes it easy to implement SCIM v2.0 server endpoints for various systems.

It is built on the following IETF approved RFCs: RFC7642, RFC7643 and RFC7644

This is a work in progress project. It already works pretty well but some features will be added in the future and some bugs may still be arround 😉

The scim-server-php project currently includes the following:

  • A SCIM 2.0 server core library
  • An integrated Mock SCIM server based on a SQLite database.

Related projects

Capabilities

This library provides:

  • Standard SCIM resources implementations (Core User, Enterprise User and Groups)
  • Custom SCIM resource Provisioning User implementation
  • Custom SCIM resource Domain implementation
  • Standard CRUD operations on above SCIM resources
  • A HTTP server handling requests and responses on defined endpoints, based on the Slim framework
  • A simple JWT implementation
    • When enabled, this JWT token needs to be provided in all requests using the Bearer schema (Authorization: Bearer <token>)
    • You can generate a token with the script located at bin/generate_jwt.php
    • The secret you use must be also defined in your config/config.php file
  • An easily reusable code architecture for implementing SCIM servers

Note that you can of course use the standard and custom SCIM resources implementations with your own HTTP server if you don't want to use the one provided by scim-server-php.

Prerequisites

  • scim-server-php requires PHP 7.4
  • Dependencies are managed with composer