SCIM provisioning
Groups
curl
curl -X GET "https://appliance.example.com/api/v1/scim/v2/Groups"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Groups';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.get("https://appliance.example.com/api/v1/scim/v2/Groups")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Groups', {
method: 'GET',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "7c3-11a-902-4de",
"externalId": "b21-77d-004-9ac",
"displayName": "Administrators",
"members": [
{
"value": "5e1-db5-4e8-c26",
"display": "jdoe@loadbalancer.org"
}
],
"meta": {
"resourceType": "Group",
"location": "/scim/v2/Groups/7c3-11a-902-4de"
}
}
]
}
curl
curl -X POST "https://appliance.example.com/api/v1/scim/v2/Groups"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Groups';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.post("https://appliance.example.com/api/v1/scim/v2/Groups")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Groups', {
method: 'POST',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "7c3-11a-902-4de",
"externalId": "b21-77d-004-9ac",
"displayName": "Administrators",
"members": [
{
"value": "5e1-db5-4e8-c26",
"display": "jdoe@loadbalancer.org"
}
],
"meta": {
"resourceType": "Group",
"location": "/scim/v2/Groups/7c3-11a-902-4de"
}
}
Groups by ID
curl
curl -X GET "https://appliance.example.com/api/v1/scim/v2/Groups/{id}"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Groups/{id}';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.get("https://appliance.example.com/api/v1/scim/v2/Groups/{id}")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Groups/{id}', {
method: 'GET',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "7c3-11a-902-4de",
"externalId": "b21-77d-004-9ac",
"displayName": "Administrators",
"members": [
{
"value": "5e1-db5-4e8-c26",
"display": "jdoe@loadbalancer.org"
}
],
"meta": {
"resourceType": "Group",
"location": "/scim/v2/Groups/7c3-11a-902-4de"
}
}
curl
curl -X PATCH "https://appliance.example.com/api/v1/scim/v2/Groups/{id}"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Groups/{id}';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.patch("https://appliance.example.com/api/v1/scim/v2/Groups/{id}")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Groups/{id}', {
method: 'PATCH',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "7c3-11a-902-4de",
"externalId": "b21-77d-004-9ac",
"displayName": "Administrators",
"members": [
{
"value": "5e1-db5-4e8-c26",
"display": "jdoe@loadbalancer.org"
}
],
"meta": {
"resourceType": "Group",
"location": "/scim/v2/Groups/7c3-11a-902-4de"
}
}
curl
curl -X DELETE "https://appliance.example.com/api/v1/scim/v2/Groups/{id}"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Groups/{id}';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.delete("https://appliance.example.com/api/v1/scim/v2/Groups/{id}")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Groups/{id}', {
method: 'DELETE',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "7c3-11a-902-4de",
"meta": {
"resourceType": "Group",
"location": "/scim/v2/Groups/7c3-11a-902-4de"
}
}
List the SCIM resource types
curl
curl -X GET "https://appliance.example.com/api/v1/scim/v2/ResourceTypes"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/ResourceTypes';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.get("https://appliance.example.com/api/v1/scim/v2/ResourceTypes")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/ResourceTypes', {
method: 'GET',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:ResourceType"
],
"id": "User",
"name": "User",
"endpoint": "/Users",
"schema": "urn:ietf:params:scim:schemas:core:2.0:User",
"meta": {
"resourceType": "ResourceType",
"location": "/scim/v2/ResourceTypes/User"
}
}
]
}
List the SCIM schemas
curl
curl -X GET "https://appliance.example.com/api/v1/scim/v2/Schemas"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Schemas';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.get("https://appliance.example.com/api/v1/scim/v2/Schemas")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Schemas', {
method: 'GET',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1,
"Resources": [
{
"id": "urn:ietf:params:scim:schemas:core:2.0:User",
"name": "User",
"meta": {
"resourceType": "Schema",
"location": "/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User"
}
}
]
}
Get the SCIM service provider configuration
curl
curl -X GET "https://appliance.example.com/api/v1/scim/v2/ServiceProviderConfig"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/ServiceProviderConfig';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.get("https://appliance.example.com/api/v1/scim/v2/ServiceProviderConfig")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/ServiceProviderConfig', {
method: 'GET',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"
],
"patch": {
"supported": true
},
"filter": {
"supported": true,
"maxResults": 200
},
"authenticationSchemes": [
{
"type": "oauthbearertoken",
"name": "OAuth Bearer Token"
}
],
"meta": {
"resourceType": "ServiceProviderConfig",
"location": "/scim/v2/ServiceProviderConfig"
}
}
Users
curl
curl -X GET "https://appliance.example.com/api/v1/scim/v2/Users"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Users';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.get("https://appliance.example.com/api/v1/scim/v2/Users")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Users', {
method: 'GET',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "5e1-db5-4e8-c26",
"externalId": "a7f-9c2-11d-004",
"userName": "jdoe@loadbalancer.org",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"value": "jdoe@loadbalancer.org",
"primary": true
}
],
"active": true,
"meta": {
"resourceType": "User",
"location": "/scim/v2/Users/5e1-db5-4e8-c26"
}
}
]
}
curl
curl -X POST "https://appliance.example.com/api/v1/scim/v2/Users"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Users';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.post("https://appliance.example.com/api/v1/scim/v2/Users")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Users', {
method: 'POST',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "5e1-db5-4e8-c26",
"externalId": "a7f-9c2-11d-004",
"userName": "jdoe@loadbalancer.org",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"value": "jdoe@loadbalancer.org",
"primary": true
}
],
"active": true,
"meta": {
"resourceType": "User",
"location": "/scim/v2/Users/5e1-db5-4e8-c26"
}
}
Users by ID
curl
curl -X GET "https://appliance.example.com/api/v1/scim/v2/Users/{id}"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Users/{id}';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.get("https://appliance.example.com/api/v1/scim/v2/Users/{id}")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Users/{id}', {
method: 'GET',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "5e1-db5-4e8-c26",
"externalId": "a7f-9c2-11d-004",
"userName": "jdoe@loadbalancer.org",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"value": "jdoe@loadbalancer.org",
"primary": true
}
],
"active": true,
"meta": {
"resourceType": "User",
"location": "/scim/v2/Users/5e1-db5-4e8-c26"
}
}
curl
curl -X PUT "https://appliance.example.com/api/v1/scim/v2/Users/{id}"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Users/{id}';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.put("https://appliance.example.com/api/v1/scim/v2/Users/{id}")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Users/{id}', {
method: 'PUT',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "5e1-db5-4e8-c26",
"externalId": "a7f-9c2-11d-004",
"userName": "jdoe@loadbalancer.org",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"value": "jdoe@loadbalancer.org",
"primary": true
}
],
"active": true,
"meta": {
"resourceType": "User",
"location": "/scim/v2/Users/5e1-db5-4e8-c26"
}
}
curl
curl -X PATCH "https://appliance.example.com/api/v1/scim/v2/Users/{id}"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/scim/v2/Users/{id}';
$headers = [
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
response = requests.patch("https://appliance.example.com/api/v1/scim/v2/Users/{id}")
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/scim/v2/Users/{id}', {
method: 'PATCH',
});
const data = await response.json();
Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "5e1-db5-4e8-c26",
"externalId": "a7f-9c2-11d-004",
"userName": "jdoe@loadbalancer.org",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"value": "jdoe@loadbalancer.org",
"primary": true
}
],
"active": true,
"meta": {
"resourceType": "User",
"location": "/scim/v2/Users/5e1-db5-4e8-c26"
}
}