SCIM 2.0
SCIM 2.0 service provider for user and group provisioning from your identity provider.
Configurazione del servizio SCIM
Sezione intitolata “Configurazione del servizio SCIM”GET /scim/v2/ServiceProviderConfig
Autenticazione: Nessuna: la richiesta è autenticata dalla firma descritta sopra.
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
Capabilities of the SCIM service. |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig" ], "patch": { "supported": true }, "bulk": { "supported": false, "maxOperations": 0, "maxPayloadSize": 0 }, "filter": { "supported": true, "maxResults": 200 }, "changePassword": { "supported": false }, "sort": { "supported": true }, "etag": { "supported": false }, "authenticationSchemes": [ { "type": "oauthbearertoken", "name": "OAuth Bearer Token", "primary": true } ]}Esempio con curl
Sezione intitolata “Esempio con curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ServiceProviderConfig"Tipi di risorsa SCIM
Sezione intitolata “Tipi di risorsa SCIM”GET /scim/v2/ResourceTypes
Autenticazione: Nessuna: la richiesta è autenticata dalla firma descritta sopra.
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
Supported resource types (User, Group). |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "Resources": [ { "id": "User", "name": "User", "endpoint": "/Users", "schema": "urn:ietf:params:scim:schemas:core:2.0:User" }, { "id": "Group", "name": "Group", "endpoint": "/Groups", "schema": "urn:ietf:params:scim:schemas:core:2.0:Group" } ]}Esempio con curl
Sezione intitolata “Esempio con curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ResourceTypes"Schemi SCIM
Sezione intitolata “Schemi SCIM”GET /scim/v2/Schemas
Autenticazione: Nessuna: la richiesta è autenticata dalla firma descritta sopra.
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
Supported schemas. |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "Resources": [ { "id": "urn:ietf:params:scim:schemas:core:2.0:User", "name": "User", "description": "User Account" }, { "id": "urn:ietf:params:scim:schemas:core:2.0:Group", "name": "Group", "description": "Group" } ]}Esempio con curl
Sezione intitolata “Esempio con curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Schemas"Elencare gli utenti
Sezione intitolata “Elencare gli utenti”GET /scim/v2/Users
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
filter |
query | string | no | SCIM filter, for example userName eq "[email protected]". and is supported. |
startIndex |
query | integer | no | |
count |
query | integer | no |
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
Users of the token’s tenant. |
401 |
SCIM token missing, invalid, revoked or expired. |
Esempio 200
{ "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" ], "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "meta": { "resourceType": "User", } } ]}Esempio con curl
Sezione intitolata “Esempio con curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN"Creare un utente
Sezione intitolata “Creare un utente”POST /scim/v2/Users
Autenticazione: Token SCIM: Authorization: Bearer <token>
Corpo della richiesta
Sezione intitolata “Corpo della richiesta”application/scim+json
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
schemas |
array<string> | sì | |
id |
string | no | |
externalId |
string \ | null | no |
userName |
string | sì | |
name |
object | no | |
name.givenName |
string | no | |
name.familyName |
string | no | |
name.formatted |
string | no | |
displayName |
string | no | |
emails |
array<object> | no | |
emails[].value |
string (email) | no | |
emails[].type |
string | no | |
emails[].primary |
boolean | no | |
active |
boolean | no | |
userType |
string | no | |
title |
string \ | null | no |
locale |
string \ | null | no |
timezone |
string \ | null | no |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User |
object | no | |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber |
string \ | null | no |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department |
string \ | null | no |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager |
object \ | null | no |
meta |
object | no | |
meta.resourceType |
string | no | |
meta.created |
string \ | null (date-time) | no |
meta.lastModified |
string \ | null (date-time) | no |
meta.location |
string | no |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe" }, "emails": [ { "type": "work", "primary": true } ], "active": true}Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
201 |
User created. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
409 |
A user with this userName already exists. |
Esempio 201
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Esempio con curl
Sezione intitolata “Esempio con curl”curl -X POST "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"userName":"[email protected]","externalId":"00u1a2b3c4D5e6F7g8h9","name":{"givenName":"Jane","familyName":"Doe"},"emails":[{"value":"[email protected]","type":"work","primary":true}],"active":true}'Leggere un utente
Sezione intitolata “Leggere un utente”GET /scim/v2/Users/{id}
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
id |
percorso | string | sì |
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
User. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Esempio con curl
Sezione intitolata “Esempio con curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Sostituire un utente
Sezione intitolata “Sostituire un utente”PUT /scim/v2/Users/{id}
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
id |
percorso | string | sì |
Corpo della richiesta
Sezione intitolata “Corpo della richiesta”application/scim+json
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
schemas |
array<string> | sì | |
id |
string | no | |
externalId |
string \ | null | no |
userName |
string | sì | |
name |
object | no | |
name.givenName |
string | no | |
name.familyName |
string | no | |
name.formatted |
string | no | |
displayName |
string | no | |
emails |
array<object> | no | |
emails[].value |
string (email) | no | |
emails[].type |
string | no | |
emails[].primary |
boolean | no | |
active |
boolean | no | |
userType |
string | no | |
title |
string \ | null | no |
locale |
string \ | null | no |
timezone |
string \ | null | no |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User |
object | no | |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber |
string \ | null | no |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department |
string \ | null | no |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager |
object \ | null | no |
meta |
object | no | |
meta.resourceType |
string | no | |
meta.created |
string \ | null (date-time) | no |
meta.lastModified |
string \ | null (date-time) | no |
meta.location |
string | no |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
User replaced. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Esempio con curl
Sezione intitolata “Esempio con curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"id":"[email protected]","externalId":"00u1a2b3c4D5e6F7g8h9","userName":"[email protected]","name":{"givenName":"Jane","familyName":"Doe","formatted":"Jane Doe"},"displayName":"Jane Doe","emails":[{"value":"[email protected]","type":"work","primary":true}],"active":true,"userType":"User","urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{"employeeNumber":"E-10442","department":"Finance","manager":null},"meta":{"resourceType":"User","created":"2026-11-01T08:00:00.000Z","lastModified":"2026-11-01T08:00:00.000Z","location":"/scim/v2/Users/[email protected]"}}'Aggiornare un utente (PATCH)
Sezione intitolata “Aggiornare un utente (PATCH)”PATCH /scim/v2/Users/{id}
Supports add, replace and remove operations, for example deactivating with {"op":"replace","path":"active","value":false}.
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
id |
percorso | string | sì |
Corpo della richiesta
Sezione intitolata “Corpo della richiesta”application/scim+json
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
schemas |
array<string> | no | |
Operations |
array<object> | sì | |
Operations[].op |
string (add, replace, remove, Add, Replace, Remove) |
sì | |
Operations[].path |
string | no | |
Operations[].value |
no |
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "replace", "path": "active", "value": false } ]}Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
User updated. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe", "formatted": "Jane Doe" }, "displayName": "Jane Doe", "emails": [ { "type": "work", "primary": true } ], "active": true, "userType": "User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "employeeNumber": "E-10442", "department": "Finance", "manager": null }, "meta": { "resourceType": "User", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", }}Esempio con curl
Sezione intitolata “Esempio con curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"active","value":false}]}'Eliminare un utente (deprovisioning)
Sezione intitolata “Eliminare un utente (deprovisioning)”DELETE /scim/v2/Users/{id}
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
id |
percorso | string | sì |
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
204 |
User deprovisioned. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Esempio con curl
Sezione intitolata “Esempio con curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Elencare i gruppi
Sezione intitolata “Elencare i gruppi”GET /scim/v2/Groups
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
filter |
query | string | no | SCIM filter, for example userName eq "[email protected]". and is supported. |
startIndex |
query | integer | no | |
count |
query | integer | no |
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
Groups of the token’s tenant. |
401 |
SCIM token missing, invalid, revoked or expired. |
Esempio 200
{ "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": "grp_service_desk_l1", "displayName": "Service Desk L1", "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "location": "/scim/v2/Groups/grp_service_desk_l1" } } ]}Esempio con curl
Sezione intitolata “Esempio con curl”curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN"Creare un gruppo
Sezione intitolata “Creare un gruppo”POST /scim/v2/Groups
Autenticazione: Token SCIM: Authorization: Bearer <token>
Corpo della richiesta
Sezione intitolata “Corpo della richiesta”application/scim+json
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
schemas |
array<string> | sì | |
id |
string | no | |
displayName |
string | sì | |
externalId |
string \ | null | no |
members |
array<object> | no | |
members[].value |
string | sì | |
members[].type |
string | no | |
members[].display |
string | no | |
meta |
object | no | |
meta.resourceType |
string | no | |
meta.created |
string \ | null (date-time) | no |
meta.lastModified |
string \ | null (date-time) | no |
meta.location |
string | no |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "Service Desk L1", "members": [ { } ]}Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
201 |
Group created. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
Esempio 201
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "grp_service_desk_l1", "displayName": "Service Desk L1", "externalId": null, "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", "location": "/scim/v2/Groups/grp_service_desk_l1" }}Esempio con curl
Sezione intitolata “Esempio con curl”curl -X POST "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"displayName":"Service Desk L1","members":[{"value":"[email protected]"}]}'Leggere un gruppo
Sezione intitolata “Leggere un gruppo”GET /scim/v2/Groups/{id}
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
id |
percorso | string | sì |
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
Group. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "grp_service_desk_l1", "displayName": "Service Desk L1", "externalId": null, "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", "location": "/scim/v2/Groups/grp_service_desk_l1" }}Esempio con curl
Sezione intitolata “Esempio con curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Aggiornare un gruppo (PATCH)
Sezione intitolata “Aggiornare un gruppo (PATCH)”PATCH /scim/v2/Groups/{id}
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
id |
percorso | string | sì |
Corpo della richiesta
Sezione intitolata “Corpo della richiesta”application/scim+json
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
schemas |
array<string> | no | |
Operations |
array<object> | sì | |
Operations[].op |
string (add, replace, remove, Add, Replace, Remove) |
sì | |
Operations[].path |
string | no | |
Operations[].value |
no |
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "add", "path": "members", "value": [ { } ] } ]}Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
200 |
Group updated. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Esempio 200
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "grp_service_desk_l1", "displayName": "Service Desk L1", "externalId": null, "members": [ { "type": "User", } ], "meta": { "resourceType": "Group", "created": "2026-11-01T08:00:00.000Z", "lastModified": "2026-11-01T08:00:00.000Z", "location": "/scim/v2/Groups/grp_service_desk_l1" }}Esempio con curl
Sezione intitolata “Esempio con curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN" \ -H "Content-Type: application/scim+json" \ --data '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"add","path":"members","value":[{"value":"[email protected]"}]}]}'Eliminare un gruppo
Sezione intitolata “Eliminare un gruppo”DELETE /scim/v2/Groups/{id}
Autenticazione: Token SCIM: Authorization: Bearer <token>
Parametri
Sezione intitolata “Parametri”| Nome | Dove | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
id |
percorso | string | sì |
Risposte
Sezione intitolata “Risposte”| Stato | Descrizione |
|---|---|
204 |
Group deleted. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Esempio con curl
Sezione intitolata “Esempio con curl” -H "Authorization: Bearer $EXO_SCIM_TOKEN"Pagina generata dalla specifica OpenAPI dell’API di integrazione, versione 1.1.0.