SCIM Action: Create a Resource
SCIM resources are created using HTTP POST verb. The body of the call contains a JSON formatted SCIM schema resource.
Creating a User
A user create is performed by a POST operation. The JSON representation of the user (according to the SCIM schema) is POSTed to the User endpoint.
curl -v -X POST --user 1234-aaaa-bbbb-5678:eXJzbmVha3kh \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"schemas":["urn:scim:schemas:core:1.0"],
"userName":"marcher",
"password":"2Federate",
"active":true,
"name":{ "familyName":"Archer", "givenName":"Meredith" },
"emails": [ { "type": "work", "value": "meredith.archer@pingdevelopers.com }]
}' \
https://directory-api.pingone.com:443/api/directory/user
A successful request will result in a HTTP 200 OK response and the JSON representation of the user that was just created:
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { "id":"a7d67610-ceb5-4350-ba5a-746472c4f1f7", "schemas": [ "urn:scim:schemas:core:1.0", "urn:scim:schemas:com_pingone:1.0" ], "urn:scim:schemas:com_pingone:1.0": { "createTimeStamp":1429123454227, "accountId":"a6538050-412a-4bca-a44d-07deb4b073a8", "lastModifiedTimeStamp":1429123454227, "directoryId":"90b3dfe3-f8d0-45ad-8c04-047c88b03137", "state":"ACTIVE" }, "name": { "familyName":"Archer", "givenName":"Meredith" }, "userName":"marcher", "active":true, "emails":[ { "value":"meredith.archer@pingdevelopers.com", "type":"work" } ], "meta": { "lastModified":"2015-04-15T12:44:14.227-06:00", "location":"https://directory-api.pingone.com/v1/user/a7d67610-ceb5-4350-ba5a-746472c4f1f7", "created":"2015-04-15T12:44:14.227-06:00" }, "groups":[ { "display":"Users", "value":"0b854f8d-a291-4e95-ad4b-68474a666e55" } ] }
In the response, the id attribute contains the unique identifier for this user in the PingOne Directory. To modify this user, add them to groups etc you will reference them via this attribute value. The location attribute contains the full resource URL that you will use to manipulate the resource in the next sections.
Creating a Group
Creating a group is a similar process, performing a POST operation against the Group endpoint:
curl -v -X POST --user 1234-aaaa-bbbb-5678:eXJzbmVha3kh \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d ' {
"schemas":["urn:scim:schemas:core:1.0"],
"displayName":"Software Developers" }' \
https://directory-api.pingone.com:443/api/directory/group
A successful request will result in a HTTP 200 OK response and the JSON representation of the group that was just created:
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { "id":"7c513a7e-55d4-441c-858c-7329e6268084", "displayName":"Software Developers", "schemas": [ "urn:scim:schemas:core:1.0", "urn:scim:schemas:com_pingone:1.0" ], "meta": { "lastModified":"2015-04-16T10:08:22.324-06:00", "created":"2015-04-16T10:08:22.324-06:00", "location":"https://directory-api.pingone.com/v1/group/7c513a7e-55d4-441c-858c-7329e6268084" }, "urn:scim:schemas:com_pingone:1.0": { "createTimeStamp":1429200502324, "lastModifiedTimeStamp":1429200502324, "accountId":"a6538050-412a-4bca-a44d-07deb4b073a8", "directoryId":"90b3dfe3-f8d0-45ad-8c04-047c88b03137" } }