SCIM 2.0
SCIM 2.0 service provider for user and group provisioning from your identity provider.
Configuration du service SCIM
Section intitulée « Configuration du service SCIM »GET /scim/v2/ServiceProviderConfig
Authentification: Aucune : la requête est authentifiée par la signature décrite ci-dessus.
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Capabilities of the SCIM service. |
Exemple 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 } ]}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ServiceProviderConfig"Types de ressource SCIM
Section intitulée « Types de ressource SCIM »GET /scim/v2/ResourceTypes
Authentification: Aucune : la requête est authentifiée par la signature décrite ci-dessus.
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Supported resource types (User, Group). |
Exemple 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" } ]}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ResourceTypes"Schémas SCIM
Section intitulée « Schémas SCIM »GET /scim/v2/Schemas
Authentification: Aucune : la requête est authentifiée par la signature décrite ci-dessus.
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Supported schemas. |
Exemple 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" } ]}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Schemas"Lister les utilisateurs
Section intitulée « Lister les utilisateurs »GET /scim/v2/Users
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
filter |
query | string | non | SCIM filter, for example userName eq "[email protected]". and is supported. |
startIndex |
query | integer | non | |
count |
query | integer | non |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Users of the token’s tenant. |
401 |
SCIM token missing, invalid, revoked or expired. |
Exemple 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", } } ]}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN"Créer un utilisateur
Section intitulée « Créer un utilisateur »POST /scim/v2/Users
Authentification: Jeton SCIM : Authorization: Bearer <token>
Corps de la requête
Section intitulée « Corps de la requête »application/scim+json
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
schemas |
array<string> | oui | |
id |
string | non | |
externalId |
string \ | null | non |
userName |
string | oui | |
name |
object | non | |
name.givenName |
string | non | |
name.familyName |
string | non | |
name.formatted |
string | non | |
displayName |
string | non | |
emails |
array<object> | non | |
emails[].value |
string (email) | non | |
emails[].type |
string | non | |
emails[].primary |
boolean | non | |
active |
boolean | non | |
userType |
string | non | |
title |
string \ | null | non |
locale |
string \ | null | non |
timezone |
string \ | null | non |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User |
object | non | |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber |
string \ | null | non |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department |
string \ | null | non |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager |
object \ | null | non |
meta |
object | non | |
meta.resourceType |
string | non | |
meta.created |
string \ | null (date-time) | non |
meta.lastModified |
string \ | null (date-time) | non |
meta.location |
string | non |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "00u1a2b3c4D5e6F7g8h9", "name": { "givenName": "Jane", "familyName": "Doe" }, "emails": [ { "type": "work", "primary": true } ], "active": true}Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
201 |
User created. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
409 |
A user with this userName already exists. |
Exemple 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", }}Exemple avec curl
Section intitulée « Exemple avec 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}'Consulter un utilisateur
Section intitulée « Consulter un utilisateur »GET /scim/v2/Users/{id}
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
id |
chemin | string | oui |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
User. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemple 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", }}Exemple avec curl
Section intitulée « Exemple avec curl » -H "Authorization: Bearer $EXO_SCIM_TOKEN"Remplacer un utilisateur
Section intitulée « Remplacer un utilisateur »PUT /scim/v2/Users/{id}
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
id |
chemin | string | oui |
Corps de la requête
Section intitulée « Corps de la requête »application/scim+json
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
schemas |
array<string> | oui | |
id |
string | non | |
externalId |
string \ | null | non |
userName |
string | oui | |
name |
object | non | |
name.givenName |
string | non | |
name.familyName |
string | non | |
name.formatted |
string | non | |
displayName |
string | non | |
emails |
array<object> | non | |
emails[].value |
string (email) | non | |
emails[].type |
string | non | |
emails[].primary |
boolean | non | |
active |
boolean | non | |
userType |
string | non | |
title |
string \ | null | non |
locale |
string \ | null | non |
timezone |
string \ | null | non |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User |
object | non | |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber |
string \ | null | non |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department |
string \ | null | non |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager |
object \ | null | non |
meta |
object | non | |
meta.resourceType |
string | non | |
meta.created |
string \ | null (date-time) | non |
meta.lastModified |
string \ | null (date-time) | non |
meta.location |
string | non |
{ "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", }}Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
User replaced. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemple 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", }}Exemple avec curl
Section intitulée « Exemple avec 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]"}}'Modifier un utilisateur (PATCH)
Section intitulée « Modifier un utilisateur (PATCH) »PATCH /scim/v2/Users/{id}
Supports add, replace and remove operations, for example deactivating with {"op":"replace","path":"active","value":false}.
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
id |
chemin | string | oui |
Corps de la requête
Section intitulée « Corps de la requête »application/scim+json
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
schemas |
array<string> | non | |
Operations |
array<object> | oui | |
Operations[].op |
string (add, replace, remove, Add, Replace, Remove) |
oui | |
Operations[].path |
string | non | |
Operations[].value |
non |
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "replace", "path": "active", "value": false } ]}Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
User updated. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemple 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", }}Exemple avec curl
Section intitulée « Exemple avec 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}]}'Supprimer un utilisateur (déprovisionnement)
Section intitulée « Supprimer un utilisateur (déprovisionnement) »DELETE /scim/v2/Users/{id}
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
id |
chemin | string | oui |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
204 |
User deprovisioned. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemple avec curl
Section intitulée « Exemple avec curl » -H "Authorization: Bearer $EXO_SCIM_TOKEN"Lister les groupes
Section intitulée « Lister les groupes »GET /scim/v2/Groups
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
filter |
query | string | non | SCIM filter, for example userName eq "[email protected]". and is supported. |
startIndex |
query | integer | non | |
count |
query | integer | non |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Groups of the token’s tenant. |
401 |
SCIM token missing, invalid, revoked or expired. |
Exemple 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" } } ]}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups" \ -H "Authorization: Bearer $EXO_SCIM_TOKEN"Créer un groupe
Section intitulée « Créer un groupe »POST /scim/v2/Groups
Authentification: Jeton SCIM : Authorization: Bearer <token>
Corps de la requête
Section intitulée « Corps de la requête »application/scim+json
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
schemas |
array<string> | oui | |
id |
string | non | |
displayName |
string | oui | |
externalId |
string \ | null | non |
members |
array<object> | non | |
members[].value |
string | oui | |
members[].type |
string | non | |
members[].display |
string | non | |
meta |
object | non | |
meta.resourceType |
string | non | |
meta.created |
string \ | null (date-time) | non |
meta.lastModified |
string \ | null (date-time) | non |
meta.location |
string | non |
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "Service Desk L1", "members": [ { } ]}Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
201 |
Group created. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
Exemple 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" }}Exemple avec curl
Section intitulée « Exemple avec 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]"}]}'Consulter un groupe
Section intitulée « Consulter un groupe »GET /scim/v2/Groups/{id}
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
id |
chemin | string | oui |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Group. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemple 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" }}Exemple avec curl
Section intitulée « Exemple avec curl » -H "Authorization: Bearer $EXO_SCIM_TOKEN"Modifier un groupe (PATCH)
Section intitulée « Modifier un groupe (PATCH) »PATCH /scim/v2/Groups/{id}
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
id |
chemin | string | oui |
Corps de la requête
Section intitulée « Corps de la requête »application/scim+json
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
schemas |
array<string> | non | |
Operations |
array<object> | oui | |
Operations[].op |
string (add, replace, remove, Add, Replace, Remove) |
oui | |
Operations[].path |
string | non | |
Operations[].value |
non |
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "add", "path": "members", "value": [ { } ] } ]}Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Group updated. |
400 |
Invalid SCIM request. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemple 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" }}Exemple avec curl
Section intitulée « Exemple avec 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]"}]}]}'Supprimer un groupe
Section intitulée « Supprimer un groupe »DELETE /scim/v2/Groups/{id}
Authentification: Jeton SCIM : Authorization: Bearer <token>
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
id |
chemin | string | oui |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
204 |
Group deleted. |
401 |
SCIM token missing, invalid, revoked or expired. |
404 |
Resource not found in the token’s tenant. |
Exemple avec curl
Section intitulée « Exemple avec curl » -H "Authorization: Bearer $EXO_SCIM_TOKEN"Page générée à partir de la spécification OpenAPI de l’API d’intégration, version 1.1.0.