Skip to content
Khalid Qarryzada edited this page Apr 30, 2024 · 23 revisions

UnboundID SCIM 2 SDK for Java

SCIM 2.0 is a cross-vendor RESTful API standard with an extensible schema specifically for handling users (people, customers) and their related identity data. The standard is flexible; it is also used to handle passwords, credentials, device profiles, shipping addresses, hardware devices, vehicles… whatever you need to store and retrieve.

The standard itself is overseen by the IETF (see RFC 7643, SCIM 2.0 Core Schema and RFC 7644, SCIM 2.0 Protocol). UnboundID (now Ping Identity) is proud to be a founding and ongoing contributor to the development of SCIM, and we're pleased to make this SDK available to everyone. There is a growing list of other participating companies and their implementations at simplecloud.info.

Why use the UnboundID SCIM 2 SDK?

Reason #1: If you are creating applications that interact with the Ping Identity SCIM services such as the PingDirectory server or the PingOne SCIM API, this is the SDK you should use.

Reason #2: If your application creates, provisions, stores or retrieves user data — consider using this SDK with one of the SCIM-compatible service providers instead of building your own separate user database.

Need more reasons?

  • Don’t waste your coding time — the SDK handles the details of the SCIM HTTP requests, including the intricate PATCH operation. Instead, use our SDK classes and methods.

  • Share users, their attributes, and related objects between applications. With SCIM, there is no need for any application team to have to deal with a set of user data that’s disconnected from the rest.

  • The SDK can be used with JVM languages other than Java, like Kotlin, Groovy, and Scala.

  • Your application will be able to interact with SCIM implementations from other vendors with minimal changes. Ping Identity is known for having the most spec-compliant and most complete implementation.

Documentation

A SCIM client developer will be concerned with three topics: requests, responses, and attribute paths. These are discussed in the following articles:

See the SCIM 2 SDK Javadocs for a detailed class reference.

Prerequisites

The SCIM 2 SDK requires Java 11 or greater.

Downloads

The SCIM 2 SDK is available as a component in Maven Central.

If you are writing a SCIM 2 client, use the scim2-sdk-client component. This will include the scim2-sdk-common component as a transitive dependency.

<dependency>
  <groupId>com.unboundid.product.scim2</groupId>
  <artifactId>scim2-sdk-client</artifactId>
  <version>VERSION</version>
</dependency>

If you are writing a SCIM 2 client for Ping Identity servers, use the scim2-ubid-extensions component. This will include the scim2-sdk-client and scim2-sdk-common components as transitive dependencies. Note that scim2-ubid-extensions is considered experimental and is subject to change.

<dependency>
  <groupId>com.unboundid.product.scim2</groupId>
  <artifactId>scim2-ubid-extensions</artifactId>
  <version>VERSION</version>
</dependency>

See Maven Central for the latest VERSION.

You may also download SCIM 2 SDK builds from the Releases page.