Develop connector using Polygon SCIMREST framework
This a reference for developing connectors using the SCIMREST framework. This introductory article contains several resources that may help you before you start and during the development.
Get started with SCIMREST framework
The SCIMREST Framework is still designed using the terminology of ConnId framework, so it is recommended to have basic understanding of the ConnID architecture and terminology.
Try out sample connectors
The sample connectors are not full fledged connectors, but rather testing examples of how to use the SCIMREST Framework to implement connectors for various protocols and technologies. They currently only support read-only operations.
Scim.Dev connector
Scim.dev is a sample SCIM 2.0 compliant service, which provides REST API for managing users, groups, and other objects.
Very simple connector, actual implementation is only one Groovy script ScimDev.schema.groovy, which only renames attributes and provides support for references ( associations) for custom object class Office.
Search operations, schema discovery and schema mapping is handled by the SCIMREST Framework, so there is no need to implement any additional code for these operations.
Sources are available in connector-scimrest repository in the connector/sample-scimdev directory.
Forgejo connector
Forgejo is a self-hosted Git service, which provides REST API for managing users, organizations, and repositories.
Sources are available in connector-scimrest repository in connector/sample-scimdev directory.
Initial development steps
Read-only connector
-
Obtain the documentation for service / application for which connector is written.
-
Determine connection & authentication parameters
-
Implement test connection
-
Determine an list of objects & concepts for identity & access management
-
Implement search support for User / account object class
-
Determine API endpoint for the object class
-
Implement support for getting user by
UID(search by filter) -
(optional) implement advanced filtering support for search
-
Implement search support for other object classes (same steps as for first class)
-
Based on application and documentation determine relations (associations) between supported object classes
-
Implement schema for relations (associations)
-
Implement fetching related objects (associations)
Additional tasks / steps
-
Implement configuration discovery
Read-Write Connector
In addition to the steps for a read-only connector:
-
Implement create operation for the object classes
-
Implement update operation for the object classes
-
Implement delete operation for the object classes