{"id":28113114,"url":"https://github.com/SAP/scimono","last_synced_at":"2025-05-14T05:06:12.618Z","repository":{"id":37714416,"uuid":"180537027","full_name":"SAP/scimono","owner":"SAP","description":"SAP SCIMono is a java reference implementation of the SCIM 2.0 industry standard for identity management. For more information about the specification visit: http://www.simplecloud.info ","archived":false,"fork":false,"pushed_at":"2025-03-24T14:09:54.000Z","size":921,"stargazers_count":29,"open_issues_count":42,"forks_count":39,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-05-11T05:28:58.489Z","etag":null,"topics":["open-source"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SAP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-10T08:27:30.000Z","updated_at":"2025-05-07T20:35:06.000Z","dependencies_parsed_at":"2024-08-06T11:54:35.204Z","dependency_job_id":"b1677765-f7c9-4fe4-be78-070e00f05444","html_url":"https://github.com/SAP/scimono","commit_stats":{"total_commits":212,"total_committers":34,"mean_commits":6.235294117647059,"dds":0.7735849056603774,"last_synced_commit":"adebc03c26dbda55366849a477b4bcfb26e574e2"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAP%2Fscimono","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAP%2Fscimono/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAP%2Fscimono/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAP%2Fscimono/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAP","download_url":"https://codeload.github.com/SAP/scimono/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076848,"owners_count":22010611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["open-source"],"created_at":"2025-05-14T05:01:29.858Z","updated_at":"2025-05-14T05:06:12.611Z","avatar_url":"https://github.com/SAP.png","language":"Java","funding_links":[],"categories":["安全"],"sub_categories":[],"readme":"\u003cimg align=\"right\" width=350 src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Emojione_1F458.svg/256px-Emojione_1F458.svg.png\"\u003e\n\n# SAP SCIMono Library\nOpen source SCIM 2.0 client and server library.\n\n[![REUSE status](https://api.reuse.software/badge/github.com/SAP/scimono)](https://api.reuse.software/info/github.com/SAP/scimono)\n\n# Description\n## Features\n\nSCIMono provides drop-in support for serving a SCIM v2 API. Supported features:\n\n  * Fully SCIM v2 compliant\n  * Support for the following resources: Users, Groups, Schemas\n  * Resource paging (index-based as required by SCIM spec. \u0026 id-based for custom scenarios)\n  * Filtering (full support for SCIM filtering syntax spec.)\n  * Any auth method (OAuth, by default)\n  * Patch support (complex single-/multi-resource updated)\n  * ETags\n \n# Requirements\n\n * [Java 8](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) or higher\n * [Apache Maven 3.0](https://maven.apache.org) or higher\n * JAX-RS Reference Implementation ([Jersey](https://jersey.github.io), [Apache CXF](http://cxf.apache.org))\n * [ANTLR 4.x](https://www.antlr.org) (filter syntax grammar)\n * [SLF4J 1.7.x](https://www.slf4j.org)\n \n# Download and Installation\n## Download\n  Clone the repository to your local machine.\n  ```shell\n  git clone https://github.com/SAP/scimono.git\n  cd scimono\n```\n\n## Installation\n```shell\nmvn clean install\n```\n## Usage\n\n  To use it, you need the following Maven dependency:\n  ```xml\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.sap.scimono\u003c/groupId\u003e\n        \u003cartifactId\u003escimono-server\u003c/artifactId\u003e\n        \u003cversion\u003e${project.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n  ```\n    \n  Exposing an API endpoint is then as easy as:\n    \n  ```java\n    import com.sap.scimono.SCIMApplication;\n    \n    import javax.ws.rs.ApplicationPath;\n    \n    @ApplicationPath(\"scim\")\n    public class MySCIMApi extends SCIMApplication {}\n  ```  \n\n# Configuration\n\nOut of the box, you get a default configuration (exposed via the standard /ServiceProvider):\n\n  * 100 resources per page\n  * OAuth auth\n\nThe default implementation will return *501 Not Implemented* for resource operations.\n\nThe library provides 5 standard callbacks that plug into the default resources:\n\n  * UsersCallback\n  * GroupsCallback\n  * SchemasCallback (for exposing custom schemas)\n  * ConfigurationCallback\n  * ResourceTypesCallback (for exposing custom resource types)\n\nThey are instantiated on a per-request basis (multi-tenancy support is straightforward to achieve) and are cached for the lifetime of the request. To use them, override the corresponding methods exposed by SCIMApplication:\n\n```java\nimport com.sap.scimono.SCIMApplication;\nimport com.sap.scimono.callback.config.SCIMConfigurationCallback;\nimport com.sap.scimono.callback.groups.GroupsCallback;\nimport com.sap.scimono.callback.schemas.SchemasCallback;\nimport com.sap.scimono.callback.users.UsersCallback;\nimport com.sap.scimono.callback.users.ResourceTypesCallback;\n\nimport javax.ws.rs.ApplicationPath;\n\n@ApplicationPath(\"scim\")\npublic class MySCIMApi extends SCIMApplication {\n  @Override\n  public UsersCallback getUsersCallback() {\n    return new MongoUserStorage(currentTenant);\n  }\n\n  @Override\n  public GroupsCallback getGroupsCallback() {\n    return new MongoGroupStorage(currentTenant);\n  }\n\n  @Override\n  public SchemasCallback getSchemasCallback() {\n    return new MongoSchemaStorage(currentTenant);\n  }\n\n  @Override\n  public SCIMConfigurationCallback getConfigurationCallback() {\n    return new MySCIMConfiguration();\n  }\n\n  @Override\n  public ResourceTypesCallback getResourceTypesCallback() {\n      return new new MongoResourceTypeStorage(currentTenant);\n  }\n}\n```\n\nThe library also provides an extension point for custom resources. Example snippet:\n```java\nimport com.sap.scimono.SCIMApplication;\n\nimport javax.ws.rs.ApplicationPath;\nimport java.util.Set;\n\n@ApplicationPath(\"scim\")\npublic class TestApplication extends SCIMApplication {\n\n  @Override\n  public Set\u003cClass\u003c?\u003e\u003e getAdditionalResourceProviders() {\n    return super.getAdditionalResourceProviders();\n  }\n}\n```\n\n\n# Limitations\nThe current features are **not** currently supported but might be in the future:\n  * Passwords\n  * Sorting\n  * Bulk operations\n  \n# Known Issues\n\nA list of known issues is available on the [GitHub issues page](https://github.com/SAP/scimono/issues) of this project.\n\n# How to obtain support\n\nFor any question please [open an issue](https://github.com/SAP/scimono/issues/new) in GitHub and make \nuse of the labels in order to refer to the sample and to categorize the kind of the issue.\n\n# Contributing\n\nOur aim is to build a lively community, hence, we welcome any exchange and collaboration with individuals and organizations interested in the use, support and extension of the open-source SAP SCIMono Library.\n\nPlease follow [this document](/CONTRIBUTING.md) for more information on the process.\n\n# To-Do (upcoming changes)\n\n*  We are currently working on client-side support for the SAP SCIMono Library.  This will allow easy SCIM 2.0 client implementations.\n\n# License\n\nCopyright 2019-2021 SAP SE or an SAP affiliate company and scimono contributors. Please see our [LICENSE](LICENSE.txt) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/SAP/scimono).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSAP%2Fscimono","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSAP%2Fscimono","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSAP%2Fscimono/lists"}