Skip to content

About

Painless SCIM integration for FastAPI

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

python-scim logo

scim2-fastapi

A FastAPI extension serving a SCIM 2.0 server, as RFC7643 and RFC7644 define it. It is built upon scim2-server and scim2-models. The application provides the storage.

Features

  • Resource endpoints: POST, GET, PUT, PATCH and DELETE, for every resource type
  • Search: GET and POST /.search, per resource type and at the server root
  • Discovery endpoints: /ServiceProviderConfig, /ResourceTypes and /Schemas
  • Bulk operations: POST /Bulk, with bulkId references, failOnErrors, maxOperations and maxPayloadSize
  • /Me, once the application tells which resource the authenticated client stands for
  • Schema extensions, and several resource types sharing a schema
  • Conditional requests with ETags: If-Match and If-None-Match
  • SCIM error payloads for the SCIM errors, and for the HTTP and validation errors of the FastAPI dependencies
  • An APIRouter to include in any application or router, listed in the OpenAPI schema

Example

from fastapi import FastAPI
from scim2_models import ScimProvider, User
from scim2_server.storage import AsyncScimStorage

from scim2_fastapi import ScimServer


class MyStorage(AsyncScimStorage):
    """Implement get, search, create, update and delete against your own storage."""

    ...


app = FastAPI()
ScimServer(MyStorage(), ScimProvider(models=[User]), app=app)

Installation

pip install scim2-fastapi

Documentation

What's SCIM anyway?

SCIM stands for System for Cross-domain Identity Management, and it is a provisioning protocol. Provisioning is the action of managing a set of resources across different services, usually users and groups. SCIM is often used between Identity Providers and applications, alongside standards like OAuth2 and OpenID Connect. It allows users and groups creations, modifications and deletions to be synchronized between applications.

Getting help

Questions and bug reports go to the issue tracker.

Contributing

The contribution page describes how to run the tests, the style checks and the documentation build.

License

scim2-fastapi is released under the Apache-2.0 license.

scim2-fastapi belongs in a collection of SCIM tools developed by Yaal Coop, with scim2-models, scim2-client, scim2-server, scim2-tester and scim2-cli.

About

Painless SCIM integration for FastAPI

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages