Your suggested change has been received. Thank you.

close

Suggest A Change

https://thales.na.market.dpondemand.io/docs/dpod/services/kmo….

back

API references

SCIM API for STA

search

SCIM API for STA

SCIM API for STA

The System for Cross-domain Identity Management (SCIM) specifications are designed to make identity management between different systems easier. SCIM provides a defined schema and extension model for representing identity resources like users and groups, and a standard protocol for exchanging user data between your cloud applications and service providers, such as STA. This ensures that user data is stored in a consistent way, so that it can be shared with different applications.

The SCIM  protocol supports the creation, discovery, retrieval, and modification of users and groups. It includes an application-level REST API to run CRUD operations on your users and groups.

The STA SCIM API includes inbound REST endpoints for the SCIM 2.0 model. This means that you can connect a user repository that supports outbound SCIM directly to STA, and use the SCIM protocol to provision your users into STA.

STA implements SCIM 2.0 as specified in the RFC documents from the Internet Engineering Task Force:

STA does not support the complete SCIM specification. Compatibility between a user directory that supports SCIM and the STA SCIM implementation is not guaranteed.

STA also includes a REST API for STA provides programmatic access to the management and logging functions of STA.

Getting started with the STA SCIM API

Before you can use the STA SCIM API, you need to get the following information from the STA consoles: 

SCIM resources

In SCIM, a resource is an artifact that is managed by a service provider, such as STA, and that contains attributes. The resource type, such as user or group, defines the resource name, endpoint URL, schemas, and other metadata. The schema is a collection of attributes that define the contents of the respective resource.

Each SCIM resource is a JSON object that has the following components:

  • Resource type is either user or group.

  • Schemas lists the SCIM schemas for the resources. It includes the core schema and any extensions.

  • Attributes:

    • Common attributes are part of every SCIM resource, but are not defined in any particular schema.

    • Core attributes are listed in the resource type's schema.

    • Extended attributes are extensions for custom fields in STA that are not found in the core SCIM schemas.

SCIM API

The SCIM protocol uses REST-style architecture and JSON objects to communicate data about your users and groups. The API provides CRUD operations that you run on your user and group resources:

  • GET Retrieves a user or group from STA.

  • POST Creates a new user or group in STA.

  • PUT Modifies a user or group by replacing the entire resource.

  • PATCH Modifies a user or group by updating only the specified attributes.

  • DELETE Deletes a user or group.

All requests to STA are made via HTTP operations on a URL derived from the base URL. Responses are returned in the body of the HTTP response, formatted as JSON. Response and error codes are transmitted via the HTTP status code of the response, and are specified in the body of the response.

The SCIM protocol specifies well-known endpoints and HTTP methods for managing resources defined in the core schema. For example, user and group resources correspond to /Users and /Groups respectively.

Resource Endpoint Supported operations Description
User /Users GET, POST, PUT, PATCH, DELETE  
Group

/Groups

Not supported

GET, POST, PUT, PATCH, DELETE

 
Service Provider Configuration /ServiceProviderConfig GET Returns the configuration details for the STA SCIM API, including supported operations and STA extensions.
Schema /Schemas GET Returns the details about how user (and group) resources are formatted.
ResourceTypes /ResourceTypes
/ResourceTypes/User
/ResourceTypes/Group
GET Returns the available resource types, and the applicable schema and extensions.

Service discovery operations

GET /serviceProviderConfig

Returns the configuration details for the STA SCIM API, including supported operations.

SCIM attribute Description Attribute type Required
documentationUri An HTTP-addressable URL pointing to the help documentation. String False
authenticationSchemes Specifies the supported authentication scheme properties. Multi-valued True
  type The authentication scheme, such as API keys. String True
  name The common authentication scheme name, such as STA SCIM authentication. String True
  description A description of the authentication scheme. String True
  primary Indicates whether it is the primary authentication scheme. Binary True

The following serviceProviderConfig attributes are not supported:

  • bulk

  • change password

  • eTag

  • filter: Only the following filters are supported:

    • and

    • eq

  • sort

GET /Schemas

Returns the details for how user and group resources are formatted.

GET /Schemas/{schemaId}

Returns the details of a specific resource configuration. The following schema IDs are available:

Schema Schema ID
SCIM core user urn:ietf:params:scim:schemas:core:2.0:User
STA custom user extension urn:ietf:params:scim:schemas:extension:stauserextension:2.0:User
SCIM group core urn:ietf:params:scim:schemas:core:2.0:Group
STA custom group extension urn:ietf:params:scim:schemas:extension:stagroupextension:2.0:Group

GET /ResourceTypes

Returns the metadata about a resource type, defining the endpoint location of a resource, and the applicable schemas and extensions. Resource type resources are read-only.

It has two child endpoints:

  • ResourceTypes/User

  • ResourceTypes/Group

SCIM attribute Description Attribute type Required
endpoint The HTTP-addressable endpoint, relative to the base URL, is Users or Groups. String Yes
name The resource type name, such as User or Group. This name is referenced by the **meta.resourceType** attribute in all resources. String Yes
id The unique identifier is User or Group. String No
schema The base schema URI is equal to the id attribute of the associated Schema resource, such as:
urn:ietf:params:scim:schemas:core:2.0:User
urn:ietf:params:scim:schemas:core:2.0:Group
String Yes
schemaExtensions A list of URIs of the resource type's schema extensions. Multi-valued No
schema The URI of an extended schema must be equal to the id attribute of a Schema resource. String Yes
required Specifies whether the schema extension is required for the resource type. If true, a resource of this type must include this schema extension and any attributes that are declared as required in this schema extension. If false, a resource of this type can omit this schema extension. Boolean Yes

GET /ResourceTypes/User

Returns the metadata about the User resource type.

SCIM attribute Description Attribute type Required
endpoint The HTTP-addressable endpoint, relative to the base URL, is Users. String Yes
name Specifies the resource type name, which is User. This name is referenced by the meta.resourceType attribute in all resources. String Yes
id The unique identifier is User. String No
description A description of the User resource type. String No
schema The base schema URI is equal to the id attribute of the associated **Schema** resource, such as:
urn:ietf:params:scim:schemas:core:2.0:User
String Yes
schemaExtensions A list of URIs of the resource type's schema extensions. Multi-valued No
schema The URI of an extended schema must be equal to the **id** attribute of a **Schema** resource. String Yes
required Specifies whether the schema extension is required for the resource type. If **true**, a resource of this type must include this schema extension and any attributes that are declared as required in this schema extension. If **false**, a resource of this type can omit this schema extension. Boolean Yes

GET /ResourceTypes/Group

Returns the metadata about the Group resource type.

SCIM attribute Description Attribute type Required
endpoint The HTTP-addressable endpoint, relative to the base URL, is Groups. String Yes
name Specifies the resource type name, which is Group. This name is referenced by the **meta.resourceType** attribute in all resources. String Yes
id The unique identifier is Group. String No
description A description of the Group resource type. String No
schema The base schema URI is equal to the **id** attribute of the associated **Schema** resource, such as:
urn:ietf:params:scim:schemas:core:2.0:Group
String Yes
schemaExtensions A list of URIs of the resource type's schema extensions. Multi-valued No
schema The URI of an extended schema must be equal to the **id** attribute of a **Schema** resource. String Yes
required Specifies whether the schema extension is required for the resource type. If **true**, a resource of this type must include this schema extension and any attributes that are declared as required in this schema extension. If **false**, a resource of this type can omit this schema extension. Boolean Yes

Rate limiting

When rate limiting occurs, the following response is returned:

  • 429 Too Many Requests

The header indicates:

  • RateLimit-Reset: 47

The rate limit reset is the number of seconds until the rate limiting resets, which is the minimum wait time.

In addition, the current thresholds and remaining calls are always included in the response:

X-RateLimit-Limit-minute
X-RateLimit-Limit-second
X-RateLimit-Remaining-minute
X-RateLimit-Remaining-second

Filter results

To reduce the number of returned results, include a filter as a parameter. Only the results that match the filter are returned.

You can use filters with the following operations:

The filter parameter must contain at least one valid expression. Each expression must contain an attribute name followed by an attribute operator and optional value. Attribute names and attribute operators used in filters are case insensitive.

The following operators are supported: 

  • and (logical AND): The filter is a match only if both expressions evaluate to true.

  • eq (equal): The attribute and operator values must be identical for a match.

There are some limitations when using filters with patch operations.

For example:

GET /tenants/{tenantCode}/scim/v2/groups?filter=members.value **eq** "08D9B595B260F5AE01879255E21200000001"

GET /tenants/{tenantCode}/scim/v2/users?filter=active **eq** true **and** name.familyName **eq** "Smith"

The scim attribute reference identifies which user and group attributes support filters.