The SCIM driver supports the Publish mode. In this mode, the driver exposes SCIM endpoints to receive events from the connected SCIM service and then pushes those events to the Identity Vault.
The SCIM driver exposes SCIM endpoints to the Identity Manager engine. This allows external applications and services to communicate with OpenText eDirectory and Identity Manager engine through the SCIM API.
NOTE:The authentication header and content type are mandatory for SCIM methods.
The following table lists the URLs for the different methods and resources:
Table 2-3 List of URLs with methods and resources
|
Resource |
Method |
URL |
|---|---|---|
|
Users |
GET, POST |
http://{ipaddress}:{port}/scim/api/v2/Users |
|
Specific user |
GET, PUT, PATCH, DELETE |
http://{ipaddress}:{port}/scim/api/v2/Users/{id} |
|
Groups |
GET, POST |
http://{ipaddress}:{port}/scim/api/v2/Groups |
|
Specific group |
GET, PUT, PATCH, DELETE |
http://{ipaddress}:{port}/scim/api/v2/Groups/{id} |
|
Custom |
GET, POST |
http://{ipaddress}:{port}/scim/api/v2/custom/{resourceName} |
|
Specific custom |
GET, PUT, PATCH, DELETE |
http://{ipaddress}:{port}/scim/api/v2/custom/{resourceName}/{id} |
The following table lists an example of the POST method:
Table 2-4
|
Method: POST |
|
|---|---|
|
User URI |
http://{ipaddress}:{port}/scim/api/v2/Users |
|
Payload |
{ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "johndoe@gmail.com", "externalId": "4wJRiuTHyEC45uMCUYrkxmn=", "name": { "givenName": "John", "familyName": "Doe" }, "emails": [{ "value": "Johndoe@gmail.com", "type": "work", "primary": true }], "active": true} |
|
Authorization |
Basic c3lzdGVtL3N5c3RlbQ== |
|
Content-Type |
application/json |
|
Response |
201 Created{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": " johndoe@gmail.com ", "externalId": "4wJRiuTHyEC45uMCUYrkxmn=", "name": { "givenName": "John", "familyName": "Doe" }, "emails": [ { "value": " johndoe@gmail.com ", "type": "work", "primary": true } ], "active": true, "id": "CqekLDjY7UW3HAqnpCw42A=="} |
NOTE:The ID returned in the POST response body is the unique system identifier. This ID is required for all subsequent operations (GET, PUT, PATCH, and DELETE) targeting that specific resource. Thus, you must capture and store the ID.
The following table lists an example of the DELETE method:
Table 2-5
|
Method: DELETE |
|
|---|---|
|
User URI |
http://{ipaddress}:{port}/scim/api/v2/Users/{id} |
|
Payload |
Not required |
|
Authorization |
Basic c3lzdGVtL3N5c3RlbQ== |
|
Content-Type |
application/json |
|
Response |
204 No Content |
The following table lists an example of the GET method:
Table 2-6
|
Method: POST |
|
|---|---|
|
User URI |
http://{ipaddress}:{port}/scim/api/v2/Users |
|
Payload |
Not applicable |
|
Authorization |
Basic c3lzdGVtL3N5c3RlbQ== |
|
Content-Type |
application/json |
|
Response |
{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], "totalResults": 1, "itemsPerPage": 100, "Resources": [ { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "id": "nhjkuijkskhdid==", "userName": " johndoe@gmail.com ", "active": true } ] "nextCursor": "rO0ABXNyACxjb20ubm92ZWxs...BZAO0ig=="} |
The following table lists an example of the PATCH method:
Table 2-7
|
Method: PATCH |
|
|---|---|
|
User URI |
http://{ipaddress}:{port}/scim/api/v2/Users/{id} |
|
Authorization |
Basic c3lzdGVtL3N5c3RlbQ== |
|
Content-Type |
application/json |
|
Payload |
{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "replace", "path": "name.familyName", "value": "Doejohn@gmail.com" } ]} |
|
Response |
200 OK |
The following table lists an example of the PUT method:
Table 2-8
|
Method: PUT |
|
|---|---|
|
User URI |
http://{ipaddress}:{port}/scim/api/v2/Users/{id} |
|
Authorization |
Basic c3lzdGVtL3N5c3RlbQ== |
|
Content-Type |
application/json |
|
Payload |
{ "id": "CqekLDjY7UW3HAqnpCw42A==", "userName": " johndoe@gmail.com ", "externalId": "4wJRiuTHyEC45uMCUYrkxmn=", "name": { "givenName": "John", "familyName": "Doe" }, "emails": [ { "value": " johndoe@gmail.com ", "type": "work", "primary": true } ], "active": true, "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"]} |
|
Response |
200 OK{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": " johndoe@gmail.com ", "externalId": "4wJRiuTHyEC45uMCUYrkxmn=", "name": { "givenName": "John", "familyName": "Doe" }, "emails": [ { "value": " johndoe@gmail.com ", "type": "work", "primary": true } ], "active": true, "id": "CqekLDjY7UW3HAqnpCw42A=="} |
The following table lists an example of GET method that the driver supports for a specific user:
Table 2-9
|
Method: GET |
|
|---|---|
|
User URI |
http://{ipaddress}:{port}/scim/api/v2/Users/{id} |
|
Payload |
Not applicable |
|
Authorization |
Basic c3lzdGVtL3N5c3RlbQ== |
|
Content-Type |
application/json |
|
Response |
{ "emails": [ { "type": "work", "value": " johndoe@gmail.com " } ], "name": { "familyName": "John", "givenName": "Doe" } "active": "false", "id": "CqekLDjY7UW3HAqnpCw42A==", "userName": " johndoe@gmail.com ", "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ]} |